From 61d830e00ecf730e794a0838a58535320add78bb Mon Sep 17 00:00:00 2001 From: Bryan Hobson Date: Sat, 14 Nov 2015 14:45:44 +0000 Subject: [PATCH] Added server and client proxies so that the mod doesn't crash if the mod has been installed on a dedicated server --- .../DefaultWorldGenerator.java | 27 +++--------- .../defaultworldgenerator/proxy/Proxy.java | 12 ++++++ .../proxy/ProxyClient.java | 41 +++++++++++++++++++ .../proxy/ProxyServer.java | 20 +++++++++ 4 files changed, 79 insertions(+), 21 deletions(-) create mode 100644 src/main/java/com/fireball1725/defaultworldgenerator/proxy/Proxy.java create mode 100644 src/main/java/com/fireball1725/defaultworldgenerator/proxy/ProxyClient.java create mode 100644 src/main/java/com/fireball1725/defaultworldgenerator/proxy/ProxyServer.java diff --git a/src/main/java/com/fireball1725/defaultworldgenerator/DefaultWorldGenerator.java b/src/main/java/com/fireball1725/defaultworldgenerator/DefaultWorldGenerator.java index b61ab02..3a847ec 100644 --- a/src/main/java/com/fireball1725/defaultworldgenerator/DefaultWorldGenerator.java +++ b/src/main/java/com/fireball1725/defaultworldgenerator/DefaultWorldGenerator.java @@ -1,41 +1,26 @@ package com.fireball1725.defaultworldgenerator; - -import com.fireball1725.defaultworldgenerator.config.ConfigGeneralSettings; -import com.fireball1725.defaultworldgenerator.config.ConfigurationFile; -import com.fireball1725.defaultworldgenerator.events.GuiEvents; -import com.fireball1725.defaultworldgenerator.lib.Log; import com.fireball1725.defaultworldgenerator.lib.Reference; +import com.fireball1725.defaultworldgenerator.proxy.Proxy; import cpw.mods.fml.common.Mod; +import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; -import net.minecraft.world.WorldType; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.common.config.Configuration; @Mod(modid = Reference.MOD_ID, name = Reference.MOD_NAME, version = Reference.VERSION_BUILD) public class DefaultWorldGenerator { @Mod.Instance public static DefaultWorldGenerator instance; - public static Configuration configuration; + @SidedProxy(serverSide="com.fireball1725.defaultworldgenerator.proxy.ProxyServer", clientSide = "com.fireball1725.defaultworldgenerator.proxy.ProxyClient") + public static Proxy proxy; @Mod.EventHandler public void preInit(FMLPreInitializationEvent event) { - configuration = ConfigurationFile.init(event.getSuggestedConfigurationFile()); - - MinecraftForge.EVENT_BUS.register(new GuiEvents()); + proxy.preInit(event); } @Mod.EventHandler public void postInit(FMLPostInitializationEvent event) { - if (ConfigGeneralSettings.generalShowDebugWorldGenerators) { - Log.info("=======================[ World Generators ]======================="); - for (int i = 0; i < WorldType.worldTypes.length; i++) { - if (WorldType.worldTypes[i] != null && WorldType.worldTypes[i].getCanBeCreated()) { - Log.info("Name: " + WorldType.worldTypes[i].getWorldTypeName()); - } - } - Log.info("=================================================================="); - } + proxy.postInit(event); } } diff --git a/src/main/java/com/fireball1725/defaultworldgenerator/proxy/Proxy.java b/src/main/java/com/fireball1725/defaultworldgenerator/proxy/Proxy.java new file mode 100644 index 0000000..9fb80f8 --- /dev/null +++ b/src/main/java/com/fireball1725/defaultworldgenerator/proxy/Proxy.java @@ -0,0 +1,12 @@ +package com.fireball1725.defaultworldgenerator.proxy; + +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; + +public abstract class Proxy +{ + public abstract void preInit(FMLPreInitializationEvent event); + public abstract void init(FMLInitializationEvent event); + public abstract void postInit(FMLPostInitializationEvent event); +} diff --git a/src/main/java/com/fireball1725/defaultworldgenerator/proxy/ProxyClient.java b/src/main/java/com/fireball1725/defaultworldgenerator/proxy/ProxyClient.java new file mode 100644 index 0000000..8b122a7 --- /dev/null +++ b/src/main/java/com/fireball1725/defaultworldgenerator/proxy/ProxyClient.java @@ -0,0 +1,41 @@ +package com.fireball1725.defaultworldgenerator.proxy; +import com.fireball1725.defaultworldgenerator.config.ConfigGeneralSettings; +import com.fireball1725.defaultworldgenerator.config.ConfigurationFile; +import com.fireball1725.defaultworldgenerator.events.GuiEvents; +import com.fireball1725.defaultworldgenerator.lib.Log; +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; +import net.minecraft.world.WorldType; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.config.Configuration; + +public class ProxyClient extends Proxy +{ + public static Configuration configuration; + + @Override + public void preInit(FMLPreInitializationEvent event) { + configuration = ConfigurationFile.init(event.getSuggestedConfigurationFile()); + MinecraftForge.EVENT_BUS.register(new GuiEvents()); + } + + @Override + public void init(FMLInitializationEvent event) { + } + + @Override + public void postInit(FMLPostInitializationEvent event) { + if (ConfigGeneralSettings.generalShowDebugWorldGenerators) { + Log.info("=======================[ World Generators ]======================="); + for (int i = 0; i < WorldType.worldTypes.length; i++) { + if (WorldType.worldTypes[i] != null && WorldType.worldTypes[i].getCanBeCreated()) { + Log.info("Name: " + WorldType.worldTypes[i].getWorldTypeName()); + } + } + Log.info("=================================================================="); + } + } +} + + diff --git a/src/main/java/com/fireball1725/defaultworldgenerator/proxy/ProxyServer.java b/src/main/java/com/fireball1725/defaultworldgenerator/proxy/ProxyServer.java new file mode 100644 index 0000000..93c9293 --- /dev/null +++ b/src/main/java/com/fireball1725/defaultworldgenerator/proxy/ProxyServer.java @@ -0,0 +1,20 @@ +package com.fireball1725.defaultworldgenerator.proxy; + +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; + +public class ProxyServer extends Proxy +{ + @Override + public void preInit(FMLPreInitializationEvent event) { + } + + @Override + public void init(FMLInitializationEvent event) { + } + + @Override + public void postInit(FMLPostInitializationEvent event) { + } +}