I'm trying to register commands in the FMLServerStartingEvent, but the event isn't firing. It's worth noting I'm running the Minecraft client (not server), but the event should fire in both cases, right? Otherwise, why would we register commands there? Here's the code:
public class EventHandlerCommon {
@EventHandler
public void serverLoad(FMLServerStartingEvent event)
{
System.out.println("=== FMLServerStartingEvent fired ===");
event.registerServerCommand(new MyCommand());
}
}
public class CommonProxy {
public void preInit(FMLPreInitializationEvent e) {
}
public void init(FMLInitializationEvent e) {
EventHandlerCommon handler = new EventHandlerCommon();
MinecraftForge.EVENT_BUS.register(handler);
FMLCommonHandler.instance().bus().register(handler); // This is supposedly deprecated, but I've found no other way to catch the FMLServerStartingEvent
}
public void postInit(FMLPostInitializationEvent e) {
}
}
@Mod(modid = Main.MODID, name = Main.MODNAME, version = Main.VERSION)
public class Main
{
@Instance
public static Main instance = new Main();
public static final String MODID = "examplemod";
public static final String MODNAME = "Example Mod";
public static final String VERSION = "1.0";
@SidedProxy(clientSide="com.example.examplemod.ClientProxy", serverSide="com.example.examplemod.ServerProxy")
public static CommonProxy proxy;
@EventHandler
public void preInit(FMLPreInitializationEvent e) {
proxy.preInit(e);
}
@EventHandler
public void init(FMLInitializationEvent e) {
proxy.init(e);
}
@EventHandler
public void postInit(FMLPostInitializationEvent e) {
proxy.postInit(e);
}
}
Supposedly, the FML events are deprecated, but it seems to still be the recommended way to catch the FMLServerStartingEvent. What am I overlooking?