Attempt to fix a possible NPE in the face of ChickenBones' hackery. ChickenBones. stop it!
This commit is contained in:
parent
c77cb8ba53
commit
f20ea649c6
|
@ -240,15 +240,29 @@ public class DimensionManager
|
||||||
*/
|
*/
|
||||||
public static void unloadWorlds(Hashtable<Integer, long[]> worldTickTimes) {
|
public static void unloadWorlds(Hashtable<Integer, long[]> worldTickTimes) {
|
||||||
for (int id : unloadQueue) {
|
for (int id : unloadQueue) {
|
||||||
|
WorldServer w = worlds.get(id);
|
||||||
try {
|
try {
|
||||||
worlds.get(id).saveAllChunks(true, null);
|
if (w != null)
|
||||||
|
{
|
||||||
|
w.saveAllChunks(true, null);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
FMLLog.warning("Unexpected world unload - world %d is already unloaded", id);
|
||||||
|
}
|
||||||
} catch (MinecraftException e) {
|
} catch (MinecraftException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
MinecraftForge.EVENT_BUS.post(new WorldEvent.Unload(worlds.get(id)));
|
finally
|
||||||
((WorldServer)worlds.get(id)).flush();
|
{
|
||||||
|
if (w != null)
|
||||||
|
{
|
||||||
|
MinecraftForge.EVENT_BUS.post(new WorldEvent.Unload(w));
|
||||||
|
w.flush();
|
||||||
setWorld(id, null);
|
setWorld(id, null);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
unloadQueue.clear();
|
unloadQueue.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue