From 87ffd039b745b4bea631c26a60731497c176988d Mon Sep 17 00:00:00 2001 From: shedaniel Date: Tue, 1 Feb 2022 21:15:23 +0800 Subject: Add progress bar to plugin reloads --- .../rei/api/common/registry/ParentReloadable.java | 14 ++++++++++++++ .../me/shedaniel/rei/api/common/registry/Reloadable.java | 13 +++++++++++++ 2 files changed, 27 insertions(+) (limited to 'api/src/main/java/me') diff --git a/api/src/main/java/me/shedaniel/rei/api/common/registry/ParentReloadable.java b/api/src/main/java/me/shedaniel/rei/api/common/registry/ParentReloadable.java index 9dfae6dd5..44039e240 100644 --- a/api/src/main/java/me/shedaniel/rei/api/common/registry/ParentReloadable.java +++ b/api/src/main/java/me/shedaniel/rei/api/common/registry/ParentReloadable.java @@ -59,4 +59,18 @@ public interface ParentReloadable

> extends Reloadable

reloadable.endReload(stage); } } + + @Override + default void beforeReloadable(ReloadStage stage, Reloadable

other) { + for (Reloadable

reloadable : getReloadables()) { + reloadable.beforeReloadable(stage, other); + } + } + + @Override + default void afterReloadable(ReloadStage stage, Reloadable

other) { + for (Reloadable

reloadable : getReloadables()) { + reloadable.afterReloadable(stage, other); + } + } } diff --git a/api/src/main/java/me/shedaniel/rei/api/common/registry/Reloadable.java b/api/src/main/java/me/shedaniel/rei/api/common/registry/Reloadable.java index 0bf2cd1b2..8040930e9 100644 --- a/api/src/main/java/me/shedaniel/rei/api/common/registry/Reloadable.java +++ b/api/src/main/java/me/shedaniel/rei/api/common/registry/Reloadable.java @@ -24,6 +24,7 @@ package me.shedaniel.rei.api.common.registry; import me.shedaniel.rei.api.common.plugins.REIPlugin; +import org.jetbrains.annotations.ApiStatus; @FunctionalInterface public interface Reloadable

> { @@ -47,6 +48,18 @@ public interface Reloadable

> { } } + @ApiStatus.Experimental + default void beforeReloadable(ReloadStage stage, Reloadable

other) {} + + @ApiStatus.Experimental + default void afterReloadable(ReloadStage stage, Reloadable

other) {} + + @ApiStatus.Experimental + default void beforeReloadablePlugin(ReloadStage stage, Reloadable

other, P plugin) {} + + @ApiStatus.Experimental + default void afterReloadablePlugin(ReloadStage stage, Reloadable

other, P plugin) {} + /** * Accepts a {@link REIPlugin} * -- cgit