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))) {