Skip to content

Commit bac1323

Browse files
committed
Use WeakReference for server variable but never clear it for better mod compat
1 parent 20ca15f commit bac1323

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

fabric/src/main/java/org/embeddedt/modernfix/ModernFixFabric.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,23 @@
44
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
55
import net.minecraft.server.MinecraftServer;
66

7+
import java.lang.ref.WeakReference;
8+
79
public class ModernFixFabric implements ModInitializer {
810
private ModernFix commonMod;
9-
public static MinecraftServer theServer;
11+
public static WeakReference<MinecraftServer> theServer = new WeakReference<>(null);
1012
@Override
1113
public void onInitialize() {
1214
commonMod = new ModernFix();
1315

1416
ServerLifecycleEvents.SERVER_STARTING.register(server -> {
15-
theServer = server;
17+
theServer = new WeakReference<>(server);
1618
});
1719
ServerLifecycleEvents.SERVER_STARTED.register(server -> {
1820
commonMod.onServerStarted();
1921
});
2022
ServerLifecycleEvents.SERVER_STOPPED.register(server -> {
2123
commonMod.onServerDead(server);
22-
theServer = null;
2324
});
2425

2526
// TODO: implement entity ID desync

fabric/src/main/java/org/embeddedt/modernfix/platform/fabric/ModernFixPlatformHooksImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public static boolean isDevEnv() {
5353
}
5454

5555
public static MinecraftServer getCurrentServer() {
56-
return ModernFixFabric.theServer;
56+
return ModernFixFabric.theServer.get();
5757
}
5858

5959
public static boolean isLoadingNormally() {

0 commit comments

Comments
 (0)