From 8b1286f8af726daffdcae8cf678c3ee03f87ae47 Mon Sep 17 00:00:00 2001 From: gnembon Date: Tue, 10 Dec 2019 23:01:30 -0400 Subject: [PATCH] fixed missed command registration for extension, 1.3.0, added optional version. --- gradle.properties | 2 +- src/main/java/carpet/CarpetExtension.java | 2 ++ src/main/java/carpet/CarpetServer.java | 12 ++++++++++++ src/main/java/carpet/settings/CarpetSettings.java | 2 +- src/main/resources/fabric.mod.json | 2 +- 5 files changed, 17 insertions(+), 3 deletions(-) diff --git a/gradle.properties b/gradle.properties index 0e69d638..f01bb38b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,7 +9,7 @@ org.gradle.jvmargs=-Xmx1G loader_version=0.7.2+build.174 # Mod Properties - mod_version = 1.2.6+v191209 + mod_version = 1.3.0+v191210 maven_group = carpet archives_base_name = fabric-carpet diff --git a/src/main/java/carpet/CarpetExtension.java b/src/main/java/carpet/CarpetExtension.java index 7ffe485d..266feddd 100644 --- a/src/main/java/carpet/CarpetExtension.java +++ b/src/main/java/carpet/CarpetExtension.java @@ -47,4 +47,6 @@ public interface CarpetExtension default void onPlayerLoggedOut(ServerPlayerEntity player) {} default void onServerClosed(MinecraftServer server) {} + + default String version() {return null;} } diff --git a/src/main/java/carpet/CarpetServer.java b/src/main/java/carpet/CarpetServer.java index b50b6a86..06dfbd45 100644 --- a/src/main/java/carpet/CarpetServer.java +++ b/src/main/java/carpet/CarpetServer.java @@ -33,6 +33,7 @@ public class CarpetServer // static for now - easier to handle all around the co { public static final Random rand = new Random((int)((2>>16)*Math.random())); public static MinecraftServer minecraft_server; + private static CommandDispatcher currentCommandDispatcher; public static CarpetScriptServer scriptServer; public static SettingsManager settingsManager; public static List extensions = new ArrayList<>(); @@ -41,6 +42,13 @@ public class CarpetServer // static for now - easier to handle all around the co public static void manageExtension(CarpetExtension extension) { extensions.add(extension); + // for extensions that come late to the party, after server is created / loaded + // we will handle them now. + // that would handle all extensions, even these that add themselves really late to the party + if (currentCommandDispatcher != null) + { + extension.registerCommands(currentCommandDispatcher); + } } public static void onGameStarted() @@ -93,7 +101,10 @@ public class CarpetServer // static for now - easier to handle all around the co DrawCommand.register(dispatcher); ScriptCommand.register(dispatcher); MobAICommand.register(dispatcher); + // registering command of extensions that has registered before either server is created + // for all other, they will have them registered when they add themselves extensions.forEach(e -> e.registerCommands(dispatcher)); + currentCommandDispatcher = dispatcher; //TestCommand.register(dispatcher); } @@ -111,6 +122,7 @@ public class CarpetServer // static for now - easier to handle all around the co public static void onServerClosed(MinecraftServer server) { + currentCommandDispatcher = null; scriptServer.onClose(); settingsManager.detachServer(); LoggerRegistry.stopLoggers(); diff --git a/src/main/java/carpet/settings/CarpetSettings.java b/src/main/java/carpet/settings/CarpetSettings.java index 5921112a..4442c1cc 100644 --- a/src/main/java/carpet/settings/CarpetSettings.java +++ b/src/main/java/carpet/settings/CarpetSettings.java @@ -29,7 +29,7 @@ import static carpet.settings.RuleCategory.DISPENSER; public class CarpetSettings { - public static final String carpetVersion = "1.2.6+v191209"; + public static final String carpetVersion = "1.3.0+v191210"; public static final Logger LOG = LogManager.getLogger(); public static boolean skipGenerationChecks = false; public static boolean impendingFillSkipUpdates = false; diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index eaa07197..bdd28778 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -1,7 +1,7 @@ { "schemaVersion": 1, "id": "carpet", - "version": "1.2.6", + "version": "1.3.0", "name": "Carpet Mod in Fabric", "description": "Carpet made out of fabric",