From c971adb59bda681b03a12f2a2320cac3db463649 Mon Sep 17 00:00:00 2001 From: Christian Date: Sun, 26 Aug 2012 13:07:35 -0400 Subject: [PATCH] Fix missing addCommand call: thanks "spawnwolf test command" --- client/net/minecraft/src/ModLoader.java | 5 +++++ .../fml/common/modloader/ModLoaderHelper.java | 10 ++++++++++ .../common/modloader/ModLoaderModContainer.java | 17 +++++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/client/net/minecraft/src/ModLoader.java b/client/net/minecraft/src/ModLoader.java index 9cc5daf880..5d7c2afbc0 100644 --- a/client/net/minecraft/src/ModLoader.java +++ b/client/net/minecraft/src/ModLoader.java @@ -121,6 +121,11 @@ public class ModLoader { ModLoaderHelper.buildEntityTracker(mod, entityClass, entityTypeId, updateRange, updateInterval, sendVelocityInfo); } + + public static void addCommand(ICommand command) + { + ModLoaderHelper.addCommand(command); + } /** * Add localization for the specified string * diff --git a/common/cpw/mods/fml/common/modloader/ModLoaderHelper.java b/common/cpw/mods/fml/common/modloader/ModLoaderHelper.java index 728b6ed75d..b3c86d2a69 100644 --- a/common/cpw/mods/fml/common/modloader/ModLoaderHelper.java +++ b/common/cpw/mods/fml/common/modloader/ModLoaderHelper.java @@ -27,6 +27,7 @@ import net.minecraft.src.BaseMod; import net.minecraft.src.Container; import net.minecraft.src.Entity; import net.minecraft.src.EntityPlayer; +import net.minecraft.src.ICommand; import net.minecraft.src.TradeEntry; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.ICraftingHandler; @@ -184,4 +185,13 @@ public class ModLoaderHelper tradeHelpers[profession].addTrade(entry); } + + public static void addCommand(ICommand command) + { + ModLoaderModContainer mlmc = (ModLoaderModContainer) Loader.instance().activeModContainer(); + if (mlmc!=null) + { + mlmc.addServerCommand(command); + } + } } diff --git a/common/cpw/mods/fml/common/modloader/ModLoaderModContainer.java b/common/cpw/mods/fml/common/modloader/ModLoaderModContainer.java index 7dae23ab79..6a0efd830e 100644 --- a/common/cpw/mods/fml/common/modloader/ModLoaderModContainer.java +++ b/common/cpw/mods/fml/common/modloader/ModLoaderModContainer.java @@ -28,6 +28,8 @@ import java.util.Properties; import java.util.Set; import java.util.logging.Level; +import net.minecraft.src.ICommand; + import com.google.common.base.Strings; import com.google.common.base.Throwables; import com.google.common.collect.ImmutableMap; @@ -56,6 +58,7 @@ import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLLoadCompleteEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; +import cpw.mods.fml.common.event.FMLServerStartingEvent; import cpw.mods.fml.common.network.FMLNetworkHandler; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.GameRegistry; @@ -83,6 +86,7 @@ public class ModLoaderModContainer implements ModContainer private String sortingProperties; private ArtifactVersion processedVersion; private boolean isNetworkMod; + private List serverCommands = Lists.newArrayList(); public ModLoaderModContainer(String className, File modSource, String sortingProperties) { @@ -564,6 +568,14 @@ public class ModLoaderModContainer implements ModContainer ModLoaderHelper.finishModLoading(this); } + @Subscribe + public void serverStarting(FMLServerStartingEvent evt) + { + for (ICommand cmd : serverCommands) + { + evt.registerServerCommand(cmd); + } + } @Override public ArtifactVersion getProcessedVersion() { @@ -591,4 +603,9 @@ public class ModLoaderModContainer implements ModContainer { return metadata!=null ? metadata.version : getVersion(); } + + public void addServerCommand(ICommand command) + { + serverCommands .add(command); + } }