From ea9aee28dbd9e3b7ae2c14622b86657b1aad92e2 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Wed, 11 Nov 2015 22:03:25 +0100 Subject: [PATCH] Hopefully fixed Laser Relay Connections sometimes breaking when quitting a world or server --- .../actuallyadditions/ActuallyAdditions.java | 6 +++++- .../ellpeck/actuallyadditions/misc/WorldData.java | 14 ++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/main/java/ellpeck/actuallyadditions/ActuallyAdditions.java b/src/main/java/ellpeck/actuallyadditions/ActuallyAdditions.java index 05bbf5280..4b72f7b80 100644 --- a/src/main/java/ellpeck/actuallyadditions/ActuallyAdditions.java +++ b/src/main/java/ellpeck/actuallyadditions/ActuallyAdditions.java @@ -47,6 +47,7 @@ import ellpeck.actuallyadditions.util.ModUtil; import ellpeck.actuallyadditions.util.Util; import ellpeck.actuallyadditions.util.playerdata.PersistentServerData; import net.minecraft.init.Items; +import net.minecraft.server.MinecraftServer; // So that BuildCraft Oil always gets used @Mod(modid = ModUtil.MOD_ID, name = ModUtil.NAME, version = ModUtil.VERSION, dependencies = "after:BuildCraft|Energy", canBeDeactivated = false, guiFactory = "ellpeck.actuallyadditions.config.GuiFactory") @@ -119,8 +120,11 @@ public class ActuallyAdditions{ Util.registerDispenserHandler(InitItems.itemBucketCanolaOil, new DispenserHandlerEmptyBucket()); Util.registerDispenserHandler(Items.bucket, new DispenserHandlerFillBucket()); Util.registerDispenserHandler(InitItems.itemFertilizer, new DispenserHandlerFertilize()); + } - WorldData.init(event.getServer()); + @EventHandler + public void serverStarted(FMLServerStartedEvent event){ + WorldData.init(MinecraftServer.getServer()); } @EventHandler diff --git a/src/main/java/ellpeck/actuallyadditions/misc/WorldData.java b/src/main/java/ellpeck/actuallyadditions/misc/WorldData.java index 81c35550b..f30927eb6 100644 --- a/src/main/java/ellpeck/actuallyadditions/misc/WorldData.java +++ b/src/main/java/ellpeck/actuallyadditions/misc/WorldData.java @@ -37,16 +37,22 @@ public class WorldData extends WorldSavedData{ if(server != null){ World world = server.getEntityWorld(); if(!world.isRemote){ - WorldSavedData savedData = world.loadItemData(WorldData.class, WorldData.DATA_TAG); + ModUtil.LOGGER.info("Loading WorldData!"); + + WorldData savedData = (WorldData)world.loadItemData(WorldData.class, WorldData.DATA_TAG); //Generate new SavedData if(savedData == null){ + ModUtil.LOGGER.info("No WorldData found, creating..."); + savedData = new WorldData(WorldData.DATA_TAG); world.setItemData(WorldData.DATA_TAG, savedData); } - //Set the current SavedData to the retreived one - if(savedData instanceof WorldData){ - WorldData.instance = (WorldData)savedData; + else{ + ModUtil.LOGGER.info("WorldData sucessfully received!"); } + + //Set the current SavedData to the retreived one + WorldData.instance = savedData; } } }