From 5cd5a323e022296c414d89455532429047128c3a Mon Sep 17 00:00:00 2001 From: StevenRS11 Date: Mon, 11 Nov 2013 17:24:20 -0500 Subject: [PATCH] Fixed Packet issues --- .../mod_pocketDim/ConnectionHandler.java | 45 +++++++++++-------- .../mod_pocketDim/core/PocketManager.java | 20 ++++++--- .../mod_pocketDim/mod_pocketDim.java | 2 +- 3 files changed, 41 insertions(+), 26 deletions(-) diff --git a/StevenDimDoors/mod_pocketDim/ConnectionHandler.java b/StevenDimDoors/mod_pocketDim/ConnectionHandler.java index 07a0b778..e29bb5a6 100644 --- a/StevenDimDoors/mod_pocketDim/ConnectionHandler.java +++ b/StevenDimDoors/mod_pocketDim/ConnectionHandler.java @@ -19,25 +19,6 @@ public class ConnectionHandler implements IConnectionHandler @Override public String connectionReceived(NetLoginHandler netHandler, INetworkManager manager) { - return null; - } - - @Override - public void connectionOpened(NetHandler netClientHandler, String server, int port, INetworkManager manager) { } - - @Override - public void connectionOpened(NetHandler netClientHandler,MinecraftServer server, INetworkManager manager) { } - - @Override - public void connectionClosed(INetworkManager manager) { } - - @Override - public void clientLoggedIn(NetHandler clientHandler, INetworkManager manager, Packet1Login login) { } - - @Override - public void playerLoggedIn(Player player, NetHandler netHandler, INetworkManager manager) - { - //Send information about all the registered dimensions and links to the client try { Packet250CustomPayload packet = new Packet250CustomPayload(); @@ -56,5 +37,31 @@ public class ConnectionHandler implements IConnectionHandler //This shouldn't happen... e.printStackTrace(); } + return null; + } + + @Override + public void connectionOpened(NetHandler netClientHandler, String server, int port, INetworkManager manager) { } + + @Override + public void connectionOpened(NetHandler netClientHandler,MinecraftServer server, INetworkManager manager) { } + + @Override + public void connectionClosed(INetworkManager manager) + { + if(PocketManager.isConnected) + { + PocketManager.unload(); + } + } + + @Override + public void clientLoggedIn(NetHandler clientHandler, INetworkManager manager, Packet1Login login) { } + + @Override + public void playerLoggedIn(Player player, NetHandler netHandler, INetworkManager manager) + { + //Send information about all the registered dimensions and links to the client + } } \ No newline at end of file diff --git a/StevenDimDoors/mod_pocketDim/core/PocketManager.java b/StevenDimDoors/mod_pocketDim/core/PocketManager.java index 63eec3b5..6a6944b2 100644 --- a/StevenDimDoors/mod_pocketDim/core/PocketManager.java +++ b/StevenDimDoors/mod_pocketDim/core/PocketManager.java @@ -204,6 +204,10 @@ public class PocketManager private static volatile boolean isLoading = false; private static volatile boolean isLoaded = false; private static volatile boolean isSaving = false; + /** + * Set as true if we are a client that has connected to a dedicated server + */ + public static volatile boolean isConnected = false; private static final UpdateWatcherProxy linkWatcher = new UpdateWatcherProxy(); private static final UpdateWatcherProxy dimWatcher = new UpdateWatcherProxy(); private static ArrayList rootDimensions = null; @@ -564,6 +568,10 @@ public class PocketManager //Any pocket dimension must be listed with PocketManager to have a dimension ID //assigned, so it's safe to assume that any unknown dimensions don't belong to us. + if(PocketManager.dimensionData == null) + { + System.out.println("Something odd happend during shutdown"); + } NewDimData dimension = PocketManager.dimensionData.get(dimensionID); if (dimension == null) { @@ -585,16 +593,19 @@ public class PocketManager public static void unload() { + System.out.println("Dimensional Doors unloading..."); + if (!isLoaded) { throw new IllegalStateException("Pocket dimensions have already been unloaded!"); } - + save(); unregisterPockets(); dimensionData = null; rootDimensions = null; isLoaded = false; + isConnected = false; } public static DimLink getLink(int x, int y, int z, World world) @@ -680,12 +691,9 @@ public class PocketManager throw new IllegalStateException("Pocket dimensions are already loading!"); } // Load compacted client-side dimension data + load(); Compactor.readDimensions(input, new DimRegistrationCallback()); - - // Register pocket dimensions - DDProperties properties = DDProperties.instance(); - registerPockets(properties); - + isConnected = true; isLoaded = true; isLoading = false; } diff --git a/StevenDimDoors/mod_pocketDim/mod_pocketDim.java b/StevenDimDoors/mod_pocketDim/mod_pocketDim.java index 570b2b1f..f8b0ed69 100644 --- a/StevenDimDoors/mod_pocketDim/mod_pocketDim.java +++ b/StevenDimDoors/mod_pocketDim/mod_pocketDim.java @@ -94,7 +94,7 @@ serverPacketHandlerSpec = public class mod_pocketDim { - public static final String version = "1.5.2R1.4.1RC1"; + public static final String version = "1.5.2R2.0.1RC1"; public static final String modid = "DimDoors"; //need to clean up