Skip to content
This repository was archived by the owner on Dec 22, 2019. It is now read-only.

Commit a8a98e9

Browse files
committed
Improve CommandReloadConfig
1 parent f232443 commit a8a98e9

File tree

2 files changed

+22
-9
lines changed

2 files changed

+22
-9
lines changed

src/main/java/com/therandomlabs/randomlib/config/CommandConfigReload.java

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,18 @@
88
import net.minecraftforge.fml.relauncher.Side;
99

1010
public class CommandConfigReload extends CommandBase {
11+
public enum ReloadPhase {
12+
PRE,
13+
POST
14+
}
15+
16+
public interface ConfigReloader {
17+
void reload(ReloadPhase phase);
18+
}
19+
1120
private final String name;
1221
private final Class<?> configClass;
13-
private final Runnable runnable;
22+
private final ConfigReloader reloader;
1423
private final boolean isClient;
1524
private final String successMessage;
1625

@@ -23,15 +32,16 @@ public CommandConfigReload(String name, Class<?> configClass, Side side,
2332
this(name, configClass, null, side, successMessage);
2433
}
2534

26-
public CommandConfigReload(String name, Class<?> configClass, Runnable runnable, Side side) {
27-
this(name, configClass, runnable, side, null);
35+
public CommandConfigReload(String name, Class<?> configClass,
36+
ConfigReloader reloader, Side side) {
37+
this(name, configClass, reloader, side, null);
2838
}
2939

30-
public CommandConfigReload(String name, Class<?> configClass, Runnable runnable, Side side,
31-
String successMessage) {
40+
public CommandConfigReload(String name, Class<?> configClass, ConfigReloader reloader,
41+
Side side, String successMessage) {
3242
this.name = name;
3343
this.configClass = configClass;
34-
this.runnable = runnable;
44+
this.reloader = reloader;
3545
isClient = side.isClient();
3646
this.successMessage = successMessage;
3747
}
@@ -49,10 +59,14 @@ public String getUsage(ICommandSender sender) {
4959
@Override
5060
public void execute(MinecraftServer server, ICommandSender sender, String[] args)
5161
throws CommandException {
62+
if(reloader != null) {
63+
reloader.reload(ReloadPhase.PRE);
64+
}
65+
5266
ConfigManager.reloadFromDisk(configClass);
5367

54-
if(runnable != null) {
55-
runnable.run();
68+
if(reloader != null) {
69+
reloader.reload(ReloadPhase.POST);
5670
}
5771

5872
if(successMessage != null && server != null && server.isDedicatedServer()) {

src/test/java/com/therandomlabs/randomlib/test/RandomLibTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import net.minecraftforge.fml.common.Mod;
99
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
1010
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
11-
import net.minecraftforge.fml.common.event.FMLServerStartedEvent;
1211
import net.minecraftforge.fml.common.event.FMLServerStartingEvent;
1312
import net.minecraftforge.fml.relauncher.Side;
1413
import org.apache.logging.log4j.LogManager;

0 commit comments

Comments
 (0)