Use WeakReference for server variable but never clear it for better mod compat
This commit is contained in:
parent
20ca15f0c4
commit
bac13236e7
|
|
@ -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<MinecraftServer> 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
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ public class ModernFixPlatformHooksImpl {
|
|||
}
|
||||
|
||||
public static MinecraftServer getCurrentServer() {
|
||||
return ModernFixFabric.theServer;
|
||||
return ModernFixFabric.theServer.get();
|
||||
}
|
||||
|
||||
public static boolean isLoadingNormally() {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user