diff --git a/fabric/src/main/java/org/embeddedt/modernfix/ModernFixFabric.java b/fabric/src/main/java/org/embeddedt/modernfix/ModernFixFabric.java index 10be5040..e91c26de 100644 --- a/fabric/src/main/java/org/embeddedt/modernfix/ModernFixFabric.java +++ b/fabric/src/main/java/org/embeddedt/modernfix/ModernFixFabric.java @@ -4,22 +4,23 @@ import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents; import net.minecraft.server.MinecraftServer; +import java.lang.ref.WeakReference; + public class ModernFixFabric implements ModInitializer { private ModernFix commonMod; - public static MinecraftServer theServer; + public static WeakReference theServer = new WeakReference<>(null); @Override public void onInitialize() { commonMod = new ModernFix(); ServerLifecycleEvents.SERVER_STARTING.register(server -> { - theServer = server; + theServer = new WeakReference<>(server); }); ServerLifecycleEvents.SERVER_STARTED.register(server -> { commonMod.onServerStarted(); }); ServerLifecycleEvents.SERVER_STOPPED.register(server -> { commonMod.onServerDead(server); - theServer = null; }); // TODO: implement entity ID desync diff --git a/fabric/src/main/java/org/embeddedt/modernfix/platform/fabric/ModernFixPlatformHooksImpl.java b/fabric/src/main/java/org/embeddedt/modernfix/platform/fabric/ModernFixPlatformHooksImpl.java index 4a4a289b..a3cae473 100644 --- a/fabric/src/main/java/org/embeddedt/modernfix/platform/fabric/ModernFixPlatformHooksImpl.java +++ b/fabric/src/main/java/org/embeddedt/modernfix/platform/fabric/ModernFixPlatformHooksImpl.java @@ -53,7 +53,7 @@ public class ModernFixPlatformHooksImpl { } public static MinecraftServer getCurrentServer() { - return ModernFixFabric.theServer; + return ModernFixFabric.theServer.get(); } public static boolean isLoadingNormally() {