From 9fd183900a6301fce94fa54e8a7ba254169ab190 Mon Sep 17 00:00:00 2001 From: yueh Date: Mon, 2 Nov 2015 12:13:09 +0100 Subject: [PATCH] Fixes #1983: WorldData cleared too early when still needed. --- src/main/java/appeng/core/AppEng.java | 7 +++++++ src/main/java/appeng/core/worlddata/IWorldData.java | 4 +++- src/main/java/appeng/core/worlddata/WorldData.java | 11 +++++++---- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/main/java/appeng/core/AppEng.java b/src/main/java/appeng/core/AppEng.java index b782f0d3..bf1066ff 100644 --- a/src/main/java/appeng/core/AppEng.java +++ b/src/main/java/appeng/core/AppEng.java @@ -37,6 +37,7 @@ import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.common.event.FMLServerAboutToStartEvent; import net.minecraftforge.fml.common.event.FMLServerStartingEvent; +import net.minecraftforge.fml.common.event.FMLServerStoppedEvent; import net.minecraftforge.fml.common.event.FMLServerStoppingEvent; import net.minecraftforge.fml.common.network.NetworkRegistry; @@ -237,6 +238,12 @@ public final class AppEng private void serverStopping( final FMLServerStoppingEvent event ) { WorldData.instance().onServerStopping(); + } + + @EventHandler + private void serverStopped( final FMLServerStoppedEvent event ) + { + WorldData.instance().onServerStoppped(); TickHandler.INSTANCE.shutdown(); } diff --git a/src/main/java/appeng/core/worlddata/IWorldData.java b/src/main/java/appeng/core/worlddata/IWorldData.java index 361b9a0f..bd24d3e3 100644 --- a/src/main/java/appeng/core/worlddata/IWorldData.java +++ b/src/main/java/appeng/core/worlddata/IWorldData.java @@ -24,13 +24,15 @@ import javax.annotation.Nonnull; /** * @author thatsIch - * @version rv3 - 30.05.2015 + * @version rv3 - 02.11.2015 * @since rv3 30.05.2015 */ public interface IWorldData { void onServerStopping(); + void onServerStoppped(); + @Nonnull IWorldGridStorageData storageData(); diff --git a/src/main/java/appeng/core/worlddata/WorldData.java b/src/main/java/appeng/core/worlddata/WorldData.java index 86025bf4..ea415d82 100644 --- a/src/main/java/appeng/core/worlddata/WorldData.java +++ b/src/main/java/appeng/core/worlddata/WorldData.java @@ -45,7 +45,7 @@ import appeng.services.compass.CompassThreadFactory; * different worlds. * * @author thatsIch - * @version rv3 - 30.05.2015 + * @version rv3 - 02.11.2015 * @since rv3 30.05.2015 */ public final class WorldData implements IWorldData @@ -162,15 +162,18 @@ public final class WorldData implements IWorldData @Override public void onServerStopping() { - Preconditions.checkNotNull( instance ); - for( final IOnWorldStoppable stoppable : this.stoppables ) { stoppable.onWorldStop(); } + } + + @Override + public void onServerStoppped() + { + Preconditions.checkNotNull( instance ); this.stoppables.clear(); - instance = null; }