mirror of
https://github.com/MinecraftForge/MinecraftForge.git
synced 2026-11-13 16:54:22 +00:00
Fix NPE when loading second single-player world
After leaving a single-player world, getServer() can return null, resulting in the stack trace below, "Fatal errors were detected during the transition from SERVER_STOPPING to SERVER_ABOUT_TO_START", "The ForgeModLoader state engine has become corrupted" and the client getting stuck forever. Exception in thread "Server thread" java.lang.NullPointerException at cpw.mods.fml.client.FMLClientHandler.serverStopped(FMLClientHandler.java:620) at cpw.mods.fml.common.FMLCommonHandler.handleServerStopped(FMLCommonHandler.java:468) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:471) at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:583)
This commit is contained in:
1 parent
85811a013d
commit
5bf7d3cb4b
1 file changed
+4
-2
@@ -617,9 +617,11 @@ public class FMLClientHandler implements IFMLSidedHandler
|
||||
public void serverStopped()
|
||||
{
|
||||
// If the server crashes during startup, it might hang the client- reset the client so it can abend properly.
|
||||
if (!getServer().func_71200_ad())
|
||||
MinecraftServer server = getServer();
|
||||
|
||||
if (server != null && !server.func_71200_ad())
|
||||
{
|
||||
ObfuscationReflectionHelper.setPrivateValue(MinecraftServer.class, getServer(), true, "field_71296"+"_Q","serverIs"+"Running");
|
||||
ObfuscationReflectionHelper.setPrivateValue(MinecraftServer.class, server, true, "field_71296"+"_Q","serverIs"+"Running");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user