From 15f03253438c6ef844fdede1efb592dcd6de4f9a Mon Sep 17 00:00:00 2001 From: Ran <43445785+RanCraftPlayz@users.noreply.github.com> Date: Fri, 10 Dec 2021 15:14:02 +0600 Subject: [PATCH] Make code server safe --- .../main/java/com/seibel/lod/common/LodCommonMain.java | 4 +++- .../seibel/lod/common/wrappers/DependencySetup.java | 10 ++++++---- fabric/src/main/java/com/seibel/lod/fabric/Main.java | 4 ++-- .../src/main/java/com/seibel/lod/forge/ForgeMain.java | 6 ++++-- 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/common/src/main/java/com/seibel/lod/common/LodCommonMain.java b/common/src/main/java/com/seibel/lod/common/LodCommonMain.java index 6ebb2c540..06ad16c23 100644 --- a/common/src/main/java/com/seibel/lod/common/LodCommonMain.java +++ b/common/src/main/java/com/seibel/lod/common/LodCommonMain.java @@ -11,9 +11,11 @@ import com.seibel.lod.core.ModInfo; */ public class LodCommonMain { public static boolean forge = false; + public static boolean serverSided; public static LodForgeMethodCaller forgeMethodCaller; - public static void startup(LodForgeMethodCaller caller) { + public static void startup(LodForgeMethodCaller caller, boolean serverSided) { + LodCommonMain.serverSided = serverSided; if (caller != null) { LodCommonMain.forge = true; forgeMethodCaller = caller; diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/DependencySetup.java b/common/src/main/java/com/seibel/lod/common/wrappers/DependencySetup.java index c6c15057c..4ef979c8f 100644 --- a/common/src/main/java/com/seibel/lod/common/wrappers/DependencySetup.java +++ b/common/src/main/java/com/seibel/lod/common/wrappers/DependencySetup.java @@ -1,5 +1,6 @@ package com.seibel.lod.common.wrappers; +import com.seibel.lod.common.LodCommonMain; import com.seibel.lod.common.wrappers.block.BlockColorSingletonWrapper; import com.seibel.lod.common.wrappers.minecraft.MinecraftRenderWrapper; import com.seibel.lod.common.wrappers.minecraft.MinecraftWrapper; @@ -24,10 +25,11 @@ import com.seibel.lod.core.wrapperInterfaces.minecraft.IMinecraftWrapper; public class DependencySetup { public static void createInitialBindings() { SingletonHandler.bind(IBlockColorSingletonWrapper.class, BlockColorSingletonWrapper.INSTANCE); - SingletonHandler.bind(IMinecraftWrapper.class, MinecraftWrapper.INSTANCE); - SingletonHandler.bind(IMinecraftRenderWrapper.class, MinecraftRenderWrapper.INSTANCE); + if (!LodCommonMain.serverSided) { + SingletonHandler.bind(IMinecraftWrapper.class, MinecraftWrapper.INSTANCE); + SingletonHandler.bind(IMinecraftRenderWrapper.class, MinecraftRenderWrapper.INSTANCE); + SingletonHandler.bind(IReflectionHandler.class, ReflectionHandler.createSingleton(MinecraftWrapper.INSTANCE.getOptions().getClass().getDeclaredFields(), MinecraftWrapper.INSTANCE.getOptions())); + } SingletonHandler.bind(IWrapperFactory.class, WrapperFactory.INSTANCE); - - SingletonHandler.bind(IReflectionHandler.class, ReflectionHandler.createSingleton(MinecraftWrapper.INSTANCE.getOptions().getClass().getDeclaredFields(), MinecraftWrapper.INSTANCE.getOptions())); } } diff --git a/fabric/src/main/java/com/seibel/lod/fabric/Main.java b/fabric/src/main/java/com/seibel/lod/fabric/Main.java index 6e66b0839..5af0ec848 100644 --- a/fabric/src/main/java/com/seibel/lod/fabric/Main.java +++ b/fabric/src/main/java/com/seibel/lod/fabric/Main.java @@ -52,10 +52,10 @@ public class Main implements ClientModInitializer // no. } - // This loads the mod after minecraft loads which doesn't causes a lot of issues + // This loads the mod after minecraft loads which doesn't causes a lot of issues (client sided) public static void init() { LodCommonMain.initConfig(); - LodCommonMain.startup(null); + LodCommonMain.startup(null, false); DependencySetup.createInitialBindings(); ClientApi.LOGGER.info(ModInfo.READABLE_NAME + ", Version: " + ModInfo.VERSION); diff --git a/forge/src/main/java/com/seibel/lod/forge/ForgeMain.java b/forge/src/main/java/com/seibel/lod/forge/ForgeMain.java index 4839add98..65a1ea793 100644 --- a/forge/src/main/java/com/seibel/lod/forge/ForgeMain.java +++ b/forge/src/main/java/com/seibel/lod/forge/ForgeMain.java @@ -40,6 +40,8 @@ import net.minecraftforge.fml.config.ModConfig; import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; +import net.minecraftforge.fml.loading.FMLEnvironment; +import net.minecraftforge.fml.loading.FMLLoader; import net.minecraftforge.fmlserverevents.FMLServerStartedEvent; import java.util.List; @@ -61,8 +63,7 @@ public class ForgeMain implements LodForgeMethodCaller private void init(final FMLCommonSetupEvent event) { // make sure the dependencies are set up before the mod needs them - LodCommonMain.initConfig(); - LodCommonMain.startup(this); + LodCommonMain.startup(this, !FMLLoader.getDist().isClient()); ForgeDependencySetup.createInitialBindings(); } @@ -79,6 +80,7 @@ public class ForgeMain implements LodForgeMethodCaller private void onClientStart(final FMLClientSetupEvent event) { + LodCommonMain.initConfig(); forgeClientProxy = new ForgeClientProxy(); MinecraftForge.EVENT_BUS.register(forgeClientProxy); }