From 19bc9eec99f543aababcfab8ca1bf500d8910621 Mon Sep 17 00:00:00 2001 From: StevenRS11 Date: Wed, 26 Mar 2014 23:19:56 -0400 Subject: [PATCH] I HATE YOU GITHUB --- .../mod_pocketDim/EventHookContainer.java | 53 ++++++++----------- .../mod_pocketDim/core/PocketManager.java | 14 +++-- .../mod_pocketDim/saving/DDSaveHandler.java | 49 +++++------------ 3 files changed, 45 insertions(+), 71 deletions(-) diff --git a/src/main/java/StevenDimDoors/mod_pocketDim/EventHookContainer.java b/src/main/java/StevenDimDoors/mod_pocketDim/EventHookContainer.java index 67519a1..f241c24 100644 --- a/src/main/java/StevenDimDoors/mod_pocketDim/EventHookContainer.java +++ b/src/main/java/StevenDimDoors/mod_pocketDim/EventHookContainer.java @@ -33,7 +33,7 @@ import cpw.mods.fml.relauncher.SideOnly; public class EventHookContainer { - private final DDProperties properties; + private final DDProperties properties; public EventHookContainer(DDProperties properties) { @@ -44,9 +44,8 @@ public class EventHookContainer public void onInitMapGen(InitMapGenEvent event) { // Replace the Nether fortress generator with our own only if any - // gateways would ever generate. - // This allows admins to disable our fortress overriding without - // disabling all gateways. + // gateways would ever generate. This allows admins to disable our + // fortress overriding without disabling all gateways. /* * if (properties.FortressGatewayGenerationChance > 0 && * properties.WorldRiftGenerationEnabled && event.type == @@ -88,15 +87,13 @@ public class EventHookContainer World world = event.entity.worldObj; ItemStack stack = event.entityPlayer.inventory.getCurrentItem(); - if (stack != null) + if (stack != null && stack.getItem() instanceof ItemDoor) { - if (stack.getItem() instanceof ItemDoor) + if (mod_pocketDim.itemDimensionalDoor.tryToPlaceDoor(stack, event.entityPlayer, world, + event.x, event.y, event.z, event.face)) { - if(mod_pocketDim.itemDimensionalDoor.tryToPlaceDoor(stack, event.entityPlayer, world, event.x, event.y, event.z, event.face)) - { - //cancel the event so we dont get two doors from vanilla doors - event.setCanceled(true); - } + // Cancel the event so that we don't get two doors from vanilla doors + event.setCanceled(true); } } } @@ -105,11 +102,9 @@ public class EventHookContainer public void onWorldLoad(WorldEvent.Load event) { // We need to initialize PocketManager here because onServerAboutToStart - // fires before we can - // use DimensionManager and onServerStarting fires after the game tries - // to generate terrain. - // If a gateway tries to generate before PocketManager has initialized, - // we get a crash. + // fires before we can use DimensionManager and onServerStarting fires + // after the game tries to generate terrain. If a gateway tries to + // generate before PocketManager has initialized, we get a crash. if (!PocketManager.isLoaded()) { PocketManager.load(); @@ -131,16 +126,14 @@ public class EventHookContainer public boolean onDeathWithHighPriority(LivingDeathEvent event) { // Teleport the entity to Limbo if it's a player in a pocket dimension - // and - // if Limbo preserves player inventories. We'll check again in a - // low-priority event handler - // to give other mods a chance to save the player if Limbo does _not_ - // preserve inventories. + // and if Limbo preserves player inventories. We'll check again in a + // low-priority event handler to give other mods a chance to save the + // player if Limbo does _not_ preserve inventories. Entity entity = event.entity; - if (entity instanceof EntityPlayer && properties.LimboEnabled && entity.worldObj.provider instanceof PocketProvider - && properties.LimboReturnsInventoryEnabled) + if (properties.LimboEnabled && properties.LimboReturnsInventoryEnabled && + entity instanceof EntityPlayer && entity.worldObj.provider instanceof PocketProvider) { EntityPlayer player = (EntityPlayer) entity; mod_pocketDim.deathTracker.addUsername(player.username); @@ -155,11 +148,10 @@ public class EventHookContainer public boolean onDeathWithLowPriority(LivingDeathEvent event) { // This low-priority handler gives mods a chance to save a player from - // death before we apply - // teleporting them to Limbo _without_ preserving their inventory. We - // also check if the player - // died in a pocket dimension and record it, regardless of whether the - // player will be sent to Limbo. + // death before we apply teleporting them to Limbo _without_ preserving + // their inventory. We also check if the player died in a pocket + // dimension and record it, regardless of whether the player will be + // sent to Limbo. Entity entity = event.entity; @@ -209,9 +201,8 @@ public class EventHookContainer SoundManager sndManager = FMLClientHandler.instance().getClient().sndManager; // SenseiKiwi: I've added the following check as a quick fix for a - // reported crash. - // This needs to work without a hitch or we have to stop trying to - // replace the background music... + // reported crash. This needs to work without a hitch or we have to + // stop trying to replace the background music... if (sndManager != null && sndManager.sndSystem != null) { if (world.provider instanceof LimboProvider) diff --git a/src/main/java/StevenDimDoors/mod_pocketDim/core/PocketManager.java b/src/main/java/StevenDimDoors/mod_pocketDim/core/PocketManager.java index 842c6c8..4d8a07a 100644 --- a/src/main/java/StevenDimDoors/mod_pocketDim/core/PocketManager.java +++ b/src/main/java/StevenDimDoors/mod_pocketDim/core/PocketManager.java @@ -304,6 +304,7 @@ public class PocketManager return true; } + public static boolean deletePocket(NewDimData target, boolean deleteFolder) { // We can't delete the dimension if it's currently loaded or if it's not actually a pocket. @@ -314,7 +315,7 @@ public class PocketManager { if (deleteFolder) { - deleteDimensionFolder(target); + deleteDimensionFiles(target); } dimensionIDBlackList.add(dimension.id); deleteDimensionData(dimension.id); @@ -322,20 +323,25 @@ public class PocketManager } return false; } - private static boolean deleteDimensionFolder(NewDimData target) + + private static boolean deleteDimensionFiles(NewDimData target) { InnerDimData dimension = (InnerDimData) target; if (dimension.isPocketDimension() && DimensionManager.getWorld(dimension.id()) == null) { - File saveDirectory = new File(DimensionManager.getCurrentSaveRootDirectory() + "/DimensionalDoors/pocketDimID" + dimension.id()); + String saveRootPath = DimensionManager.getCurrentSaveRootDirectory().getAbsolutePath(); + File saveDirectory = new File(saveRootPath + "/DimensionalDoors/pocketDimID" + dimension.id()); DeleteFolder.deleteFolder(saveDirectory); + File dataFile = new File(saveRootPath + "/DimensionalDoors/data/dim_" + dimension.id() + ".txt"); + dataFile.delete(); return true; } return false; } + private static boolean deleteDimensionData(int dimensionID) { - if(dimensionData.containsKey(dimensionID)&& DimensionManager.getWorld(dimensionID) == null) + if (dimensionData.containsKey(dimensionID) && DimensionManager.getWorld(dimensionID) == null) { NewDimData target = PocketManager.getDimensionData(dimensionID); InnerDimData dimension = (InnerDimData) target; diff --git a/src/main/java/StevenDimDoors/mod_pocketDim/saving/DDSaveHandler.java b/src/main/java/StevenDimDoors/mod_pocketDim/saving/DDSaveHandler.java index 8cef1fd..b995edd 100644 --- a/src/main/java/StevenDimDoors/mod_pocketDim/saving/DDSaveHandler.java +++ b/src/main/java/StevenDimDoors/mod_pocketDim/saving/DDSaveHandler.java @@ -244,58 +244,35 @@ public class DDSaveHandler // Create the data directory for our dimensions // Don't catch exceptions here. If we can't create this folder, // the mod should crash to let the user know early on. - - //I still dont think that this is the best way to do this, but atleast it is better than - //risking deleting everything. I delete files afterwards that I did not modify. - //get the save directory path + // Get the save directory path File saveDirectory = new File(DimensionManager.getCurrentSaveRootDirectory() + "/DimensionalDoors/data/"); + String savePath = saveDirectory.getAbsolutePath(); - //create the save directory + // Create the save directory Files.createParentDirs(saveDirectory); saveDirectory.mkdir(); - //create and write the blackList - BlacklistProcessor blacklistReader = new BlacklistProcessor(); - writeBlacklist(blacklist, blacklistReader,saveDirectory); - - FileFilter dataFileFilter = new FileFilters.RegexFileFilter("dim_-?\\d+\\.txt"); - - //Take the list of all dimData files already saved in the save Directory, and map them according to ID. - File[] dataFiles = saveDirectory.listFiles(dataFileFilter); - HashMap unsavedDimData = new HashMap(); - for (File dataFile : dataFiles) - { - unsavedDimData.put(Integer.parseInt(dataFile.getName().split("[.]")[0].substring(4)), dataFile); - } + // Create and write the blackList + writeBlacklist(blacklist, savePath); + // Write the dimension save data, and remove the ones we save from the mapping boolean succeeded = true; - - //write the dimension save data, and remove the ones we save from the mapping DimDataProcessor writer = new DimDataProcessor(); for (IPackable dimension : dimensions) { - succeeded &= writeDimension(dimension, writer, saveDirectory.getAbsolutePath()+"/dim_"); - unsavedDimData.remove(Integer.parseInt(dimension.name())); - } - - //once we have finished saving, delete the files from the save directory that where not saved - if(succeeded) - { - for (File dataFile : unsavedDimData.values()) - { - dataFile.delete(); - } + succeeded &= writeDimension(dimension, writer, savePath + "/dim_"); } return succeeded; } - private static boolean writeBlacklist(List blacklist, BlacklistProcessor writer, File saveDirectory) + private static boolean writeBlacklist(List blacklist, String savePath) { try { - File tempFile = new File(saveDirectory.getAbsolutePath() + "blacklist.tmp"); - File saveFile = new File(saveDirectory.getAbsolutePath() + "blacklist.txt"); + BlacklistProcessor writer = new BlacklistProcessor(); + File tempFile = new File(savePath + "/blacklist.tmp"); + File saveFile = new File(savePath + "/blacklist.txt"); writer.writeToFile(tempFile, blacklist); saveFile.delete(); tempFile.renameTo(saveFile); @@ -306,9 +283,9 @@ public class DDSaveHandler System.err.println("Could not save blacklist. The following error occurred:"); printException(e, true); return false; - } - + } } + private static boolean writeDimension(IPackable dimension, DimDataProcessor writer, String basePath) { try