From d6845487ce8f6cc56ecfd880916030e97285d3fe Mon Sep 17 00:00:00 2001 From: gnembon Date: Tue, 2 Jun 2020 21:05:44 -0300 Subject: [PATCH] changes in 1.16 require to re-register commands after datapack reload. May affect extensions with custom CMs - doubt there is any. --- src/main/java/carpet/CarpetServer.java | 6 ++++++ src/main/java/carpet/settings/SettingsManager.java | 4 +--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/java/carpet/CarpetServer.java b/src/main/java/carpet/CarpetServer.java index b89db11c..cb8254e2 100644 --- a/src/main/java/carpet/CarpetServer.java +++ b/src/main/java/carpet/CarpetServer.java @@ -80,6 +80,11 @@ public class CarpetServer // static for now - easier to handle all around the co public static void registerCarpetCommands(CommandDispatcher dispatcher) { + settingsManager.registerCommand(dispatcher); + extensions.forEach(e -> { + SettingsManager sm = e.customSettingsManager(); + if (sm != null) sm.registerCommand(dispatcher); + }); TickCommand.register(dispatcher); ProfileCommand.register(dispatcher); CounterCommand.register(dispatcher); @@ -100,6 +105,7 @@ public class CarpetServer // static for now - easier to handle all around the co if (FabricLoader.getInstance().isDevelopmentEnvironment()) TestCommand.register(dispatcher); + // todo 1.16 - re-registerer apps if that's a reload operation. } public static void onPlayerLoggedIn(ServerPlayerEntity player) diff --git a/src/main/java/carpet/settings/SettingsManager.java b/src/main/java/carpet/settings/SettingsManager.java index 0588287f..b851f4db 100644 --- a/src/main/java/carpet/settings/SettingsManager.java +++ b/src/main/java/carpet/settings/SettingsManager.java @@ -76,8 +76,6 @@ public class SettingsManager { this.server = server; loadConfigurationFromConf(); - registerCommand(server.getCommandManager().getDispatcher()); - notifyPlayersCommandsChanged(); } public void detachServer() @@ -359,7 +357,7 @@ public class SettingsManager return rule; } - private void registerCommand(CommandDispatcher dispatcher) + public void registerCommand(CommandDispatcher dispatcher) { if (dispatcher.getRoot().getChildren().stream().anyMatch(node -> node.getName().equalsIgnoreCase(identifier))) {