diff --git a/StevenDimDoors/mod_pocketDim/core/PocketManager.java b/StevenDimDoors/mod_pocketDim/core/PocketManager.java index b79ee2bb..a03a7b9f 100644 --- a/StevenDimDoors/mod_pocketDim/core/PocketManager.java +++ b/StevenDimDoors/mod_pocketDim/core/PocketManager.java @@ -391,17 +391,16 @@ public class PocketManager public static void unload() { + if (!isLoaded) + { + throw new IllegalStateException("Pocket dimensions have already been unloaded!"); + } + save(); - dimensionData = null; unregisterPockets(); + dimensionData = null; + isLoaded = false; } - - /* - * This isn't needed right now and it's causing me problems due to the iterator's generic type -_- - public static Iterable getDimensions() - { - return dimensionData.values(); - }*/ public static DimLink getLink(int x, int y, int z, World world) { diff --git a/StevenDimDoors/mod_pocketDimClient/ClientPacketHandler.java b/StevenDimDoors/mod_pocketDimClient/ClientPacketHandler.java index a98f115e..a969a92e 100644 --- a/StevenDimDoors/mod_pocketDimClient/ClientPacketHandler.java +++ b/StevenDimDoors/mod_pocketDimClient/ClientPacketHandler.java @@ -38,6 +38,11 @@ public class ClientPacketHandler implements IPacketHandler, IUpdateSource if (!packet.channel.equals(PacketConstants.CHANNEL_NAME)) return; + // If this is a memory connection, then our client is running an integrated server. + // We can tell by checking if packet size is 0. + if (manager.packetSize() == 0) + return; + try { DataInputStream input = new DataInputStream(new ByteArrayInputStream(packet.data));