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 1/2] 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() { From a6e2fc94b4ce1077a71fd67474137f215880316e Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Mon, 26 Jun 2023 12:59:20 -0400 Subject: [PATCH 2/2] Add 1.20 to README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 49362c9e..e2d0fd33 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ is directly derived from Sodium and used under the terms of the LGPL-3.0 license - 1.18.2, both modloaders: https://nightly.link/embeddedt/ModernFix/workflows/gradle/1.18/Package.zip - 1.19.2, both modloaders: https://nightly.link/embeddedt/ModernFix/workflows/gradle/1.19.2/Package.zip - 1.19.4, both modloaders: https://nightly.link/embeddedt/ModernFix/workflows/gradle/1.19.4/Package.zip +- 1.20.1, both modloaders: https://nightly.link/embeddedt/ModernFix/workflows/gradle/1.20/Package.zip ------------