From bac13236e7d49dd1c5c797cfe7cee0a97c126479 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Mon, 26 Jun 2023 12:57:49 -0400 Subject: [PATCH] Use WeakReference for server variable but never clear it for better mod compat --- .../main/java/org/embeddedt/modernfix/ModernFixFabric.java | 7 ++++--- .../platform/fabric/ModernFixPlatformHooksImpl.java | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) 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() {