From e37312e73340e964220d1765c1b4c5debf5faff8 Mon Sep 17 00:00:00 2001 From: SenseiKiwi Date: Tue, 18 Jun 2013 02:27:36 -0400 Subject: [PATCH 1/4] Trivial changes Trivial changes. --- .../mod_pocketDim/commands/CommandDeleteRifts.java | 2 +- .../mod_pocketDim/commands/CommandPruneDims.java | 14 +------------- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/StevenDimDoors/mod_pocketDim/commands/CommandDeleteRifts.java b/StevenDimDoors/mod_pocketDim/commands/CommandDeleteRifts.java index 11f444d..2e616c5 100644 --- a/StevenDimDoors/mod_pocketDim/commands/CommandDeleteRifts.java +++ b/StevenDimDoors/mod_pocketDim/commands/CommandDeleteRifts.java @@ -23,7 +23,7 @@ public class CommandDeleteRifts extends CommandBase private static DDProperties properties = null; - public String getCommandName()//the name of our command + public String getCommandName() { return "dimdoors-cleanupRifts"; } diff --git a/StevenDimDoors/mod_pocketDim/commands/CommandPruneDims.java b/StevenDimDoors/mod_pocketDim/commands/CommandPruneDims.java index 8da2248..aa699da 100644 --- a/StevenDimDoors/mod_pocketDim/commands/CommandPruneDims.java +++ b/StevenDimDoors/mod_pocketDim/commands/CommandPruneDims.java @@ -16,12 +16,8 @@ public class CommandPruneDims extends CommandBase return "dimdoors-prunePockets"; } - - - @Override public void processCommand(ICommandSender var1, String[] var2) - { int numRemoved=0; ArrayList dimsWithLinks=new ArrayList(); @@ -56,14 +52,6 @@ public class CommandPruneDims extends CommandBase } } dimHelper.instance.save(); - this.getCommandSenderAsPlayer(var1).sendChatToPlayer("Removed "+numRemoved+" unreachable pocket dims."); - - - - - - - - + getCommandSenderAsPlayer(var1).sendChatToPlayer("Removed "+numRemoved+" unreachable pocket dims."); } } \ No newline at end of file From 45e039573bb2de92e16faaadcb639d6c3862b2ec Mon Sep 17 00:00:00 2001 From: SenseiKiwi Date: Tue, 18 Jun 2013 06:50:10 -0400 Subject: [PATCH 2/4] Renamed Command Classes, Deleted Unused Class Renamed some of the command classes to change "Dim" to "Dimension". I'm a firm believer in writing most things out except when it would be absurd. Also deleted CommandPrintDungeonData because it didn't do anything. We can always add it again if we want it. --- ...a.java => CommandDeleteDimensionData.java} | 0 ...ta.java => CommandPrintDimensionData.java} | 0 .../commands/CommandPrintDungeonData.java | 34 ------------------- ...eDims.java => CommandPruneDimensions.java} | 0 4 files changed, 34 deletions(-) rename StevenDimDoors/mod_pocketDim/commands/{CommandDeleteDimData.java => CommandDeleteDimensionData.java} (100%) rename StevenDimDoors/mod_pocketDim/commands/{CommandPrintDimData.java => CommandPrintDimensionData.java} (100%) delete mode 100644 StevenDimDoors/mod_pocketDim/commands/CommandPrintDungeonData.java rename StevenDimDoors/mod_pocketDim/commands/{CommandPruneDims.java => CommandPruneDimensions.java} (100%) diff --git a/StevenDimDoors/mod_pocketDim/commands/CommandDeleteDimData.java b/StevenDimDoors/mod_pocketDim/commands/CommandDeleteDimensionData.java similarity index 100% rename from StevenDimDoors/mod_pocketDim/commands/CommandDeleteDimData.java rename to StevenDimDoors/mod_pocketDim/commands/CommandDeleteDimensionData.java diff --git a/StevenDimDoors/mod_pocketDim/commands/CommandPrintDimData.java b/StevenDimDoors/mod_pocketDim/commands/CommandPrintDimensionData.java similarity index 100% rename from StevenDimDoors/mod_pocketDim/commands/CommandPrintDimData.java rename to StevenDimDoors/mod_pocketDim/commands/CommandPrintDimensionData.java diff --git a/StevenDimDoors/mod_pocketDim/commands/CommandPrintDungeonData.java b/StevenDimDoors/mod_pocketDim/commands/CommandPrintDungeonData.java deleted file mode 100644 index 6745948..0000000 --- a/StevenDimDoors/mod_pocketDim/commands/CommandPrintDungeonData.java +++ /dev/null @@ -1,34 +0,0 @@ -package StevenDimDoors.mod_pocketDim.commands; - -import java.util.ArrayList; - -import cpw.mods.fml.common.FMLCommonHandler; - -import StevenDimDoors.mod_pocketDim.DimData; -import StevenDimDoors.mod_pocketDim.LinkData; -import StevenDimDoors.mod_pocketDim.mod_pocketDim; -import StevenDimDoors.mod_pocketDim.helpers.dimHelper; -import net.minecraft.command.CommandBase; -import net.minecraft.command.ICommandSender; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; - -public class CommandPrintDungeonData extends CommandBase -{ - public String getCommandName()//the name of our command - { - return "print_dungeon_data"; - } - - - - - @Override - public void processCommand(ICommandSender var1, String[] var2) - - { - - - - } -} \ No newline at end of file diff --git a/StevenDimDoors/mod_pocketDim/commands/CommandPruneDims.java b/StevenDimDoors/mod_pocketDim/commands/CommandPruneDimensions.java similarity index 100% rename from StevenDimDoors/mod_pocketDim/commands/CommandPruneDims.java rename to StevenDimDoors/mod_pocketDim/commands/CommandPruneDimensions.java From ecaa90a438d69bb9236fceb3ef3cae769acce731 Mon Sep 17 00:00:00 2001 From: SenseiKiwi Date: Tue, 18 Jun 2013 10:23:31 -0400 Subject: [PATCH 3/4] Partially Overhauled Commands Partially overhauled our command classes. Added DDCommandBase - it extends CommandBase and acts as a new base class for our commands. It removes a little redundancy in our code and provides increased convenience. Removed the static fields for our commands in mod_pocketDim. There was no point in keeping them when nothing was using them. Changed in-game command names to be shorter yet relevant. Converted all commands to singletons so proper instances can be retrieved if necessary. Migrated some of the custom dungeon start/ending logic to DungeonHelper and made customDungeonStatus private. Except for data objects, we shouldn't be exposing state variables like that without any kind of checks. I've rewritten the code in some commands but it's been quite tiring. Still need to fix up lots of things. --- .../commands/CommandAddDungeonRift.java | 146 ------------------ .../commands/CommandCreateDungeonRift.java | 97 ++++++++++++ .../commands/CommandDeleteAllLinks.java | 85 ++++------ .../commands/CommandDeleteDimensionData.java | 68 +++----- .../commands/CommandDeleteRifts.java | 87 ++++------- .../commands/CommandEndDungeonCreation.java | 70 ++++----- .../commands/CommandPrintDimensionData.java | 83 ++++------ .../commands/CommandPruneDimensions.java | 30 ++-- .../commands/CommandStartDungeonCreation.java | 66 +++----- .../mod_pocketDim/commands/DDCommandBase.java | 48 ++++++ .../mod_pocketDim/helpers/DungeonHelper.java | 29 +++- .../mod_pocketDim/mod_pocketDim.java | 43 ++---- 12 files changed, 365 insertions(+), 487 deletions(-) delete mode 100644 StevenDimDoors/mod_pocketDim/commands/CommandAddDungeonRift.java create mode 100644 StevenDimDoors/mod_pocketDim/commands/CommandCreateDungeonRift.java create mode 100644 StevenDimDoors/mod_pocketDim/commands/DDCommandBase.java diff --git a/StevenDimDoors/mod_pocketDim/commands/CommandAddDungeonRift.java b/StevenDimDoors/mod_pocketDim/commands/CommandAddDungeonRift.java deleted file mode 100644 index e26b822..0000000 --- a/StevenDimDoors/mod_pocketDim/commands/CommandAddDungeonRift.java +++ /dev/null @@ -1,146 +0,0 @@ -package StevenDimDoors.mod_pocketDim.commands; - -import java.util.Collection; - -import net.minecraft.command.CommandBase; -import net.minecraft.command.ICommandSender; -import net.minecraft.util.MathHelper; -import StevenDimDoors.mod_pocketDim.DungeonGenerator; -import StevenDimDoors.mod_pocketDim.LinkData; -import StevenDimDoors.mod_pocketDim.helpers.DungeonHelper; -import StevenDimDoors.mod_pocketDim.helpers.dimHelper; - -public class CommandAddDungeonRift extends CommandBase -{ - public String getCommandName()//the name of our command - { - return "dimdoors-genDungeonRift"; - } - - - - - @Override - public void processCommand(ICommandSender var1, String[] var2) - { - DungeonHelper dungeonHelper = DungeonHelper.instance(); - - if(var2==null||this.getCommandSenderAsPlayer(var1).worldObj.isRemote) - { - return; - } - - LinkData link = new LinkData(this.getCommandSenderAsPlayer(var1).worldObj.provider.dimensionId, 0, - MathHelper.floor_double(this.getCommandSenderAsPlayer(var1).posX), - MathHelper.floor_double(this.getCommandSenderAsPlayer(var1).posY)+1, - MathHelper.floor_double(this.getCommandSenderAsPlayer(var1).posZ), - MathHelper.floor_double(this.getCommandSenderAsPlayer(var1).posX), - MathHelper.floor_double(this.getCommandSenderAsPlayer(var1).posY)+1, - MathHelper.floor_double(this.getCommandSenderAsPlayer(var1).posZ),true,3); - - - - - if(var2.length!=0&&var2[0].equals("random")) - { - this.getCommandSenderAsPlayer(var1).sendChatToPlayer("Created dungeon rift"); - dimHelper.instance.createLink(link); - link = dimHelper.instance.createPocket(link,true, true); - - } - else if (var2.length != 0 && var2[0].equals("list")) - { - Collection dungeonNames = dungeonHelper.getDungeonNames(); - for (String name : dungeonNames) - { - getCommandSenderAsPlayer(var1).sendChatToPlayer(name); - } - } - - else if(var2.length!=0) - { - for(DungeonGenerator dungeonGen : dungeonHelper.registeredDungeons) - { - String dungeonName =dungeonGen.schematicPath.toLowerCase(); - - - - if(dungeonName.contains(var2[0].toLowerCase())) - { - - link = dimHelper.instance.createPocket(link,true, true); - - dimHelper.dimList.get(link.destDimID).dungeonGenerator=dungeonGen; - - this.getCommandSenderAsPlayer(var1).sendChatToPlayer("Genned dungeon " +dungeonName); - - - return; - - } - - - - } - - for(DungeonGenerator dungeonGen : dungeonHelper.customDungeons) - { - String dungeonName =dungeonGen.schematicPath.toLowerCase(); - - - - if(dungeonName.contains(var2[0].toLowerCase())) - { - - link = dimHelper.instance.createPocket(link,true, true); - - dimHelper.dimList.get(link.destDimID).dungeonGenerator=dungeonGen; - - this.getCommandSenderAsPlayer(var1).sendChatToPlayer("Genned dungeon " +dungeonName); - - - return; - - } - - - - } - - - - - if(var2!=null&&!var2[0].equals("random")) - { - this.getCommandSenderAsPlayer(var1).sendChatToPlayer("could not find dungeon, 'list' for list of dungeons"); - - - - } - } - else - { - this.getCommandSenderAsPlayer(var1).sendChatToPlayer("invalid arguments- 'random' for random dungeon, or 'list' for dungeon names"); - - } - - - - - - - - - - - - - // this.getCommandSenderAsPlayer(var1).sendChatToPlayer(String.valueOf(var2)); - // this.getCommandSenderAsPlayer(var1).sendChatToPlayer(String.valueOf(var2.length)); - // this.getCommandSenderAsPlayer(var1).sendChatToPlayer("Removed "+linksRemoved+" rifts."); - - - // TODO Auto-generated method stub - - } -} \ No newline at end of file diff --git a/StevenDimDoors/mod_pocketDim/commands/CommandCreateDungeonRift.java b/StevenDimDoors/mod_pocketDim/commands/CommandCreateDungeonRift.java new file mode 100644 index 0000000..0f36f83 --- /dev/null +++ b/StevenDimDoors/mod_pocketDim/commands/CommandCreateDungeonRift.java @@ -0,0 +1,97 @@ +package StevenDimDoors.mod_pocketDim.commands; + +import java.util.Collection; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.util.MathHelper; +import StevenDimDoors.mod_pocketDim.DungeonGenerator; +import StevenDimDoors.mod_pocketDim.LinkData; +import StevenDimDoors.mod_pocketDim.helpers.DungeonHelper; +import StevenDimDoors.mod_pocketDim.helpers.dimHelper; + +public class CommandCreateDungeonRift extends DDCommandBase +{ + private static CommandCreateDungeonRift instance = null; + + private CommandCreateDungeonRift() + { + super("dd-rift"); + } + + public static CommandCreateDungeonRift instance() + { + if (instance == null) + instance = new CommandCreateDungeonRift(); + + return instance; + } + + @Override + public void processCommand(EntityPlayer sender, String[] command) + { + DungeonHelper dungeonHelper = DungeonHelper.instance(); + + if(command==null||sender.worldObj.isRemote) + { + return; + } + + LinkData link = new LinkData(sender.worldObj.provider.dimensionId, 0, + (int) sender.posX, + (int) sender.posY + 1, + (int) sender.posZ, + (int) sender.posX, + (int) sender.posY + 1, + (int) sender.posZ,true,3); + + if(command.length!=0&&command[0].equals("random")) + { + sender.sendChatToPlayer("Created dungeon rift"); + dimHelper.instance.createLink(link); + link = dimHelper.instance.createPocket(link,true, true); + } + else if (command.length != 0 && command[0].equals("list")) + { + Collection dungeonNames = dungeonHelper.getDungeonNames(); + for (String name : dungeonNames) + { + getCommandSenderAsPlayer(sender).sendChatToPlayer(name); + } + } + else if(command.length!=0) + { + for(DungeonGenerator dungeonGen : dungeonHelper.registeredDungeons) + { + String dungeonName =dungeonGen.schematicPath.toLowerCase(); + + if(dungeonName.contains(command[0].toLowerCase())) + { + link = dimHelper.instance.createPocket(link,true, true); + dimHelper.dimList.get(link.destDimID).dungeonGenerator=dungeonGen; + sender.sendChatToPlayer("Genned dungeon " +dungeonName); + return; + } + } + for(DungeonGenerator dungeonGen : dungeonHelper.customDungeons) + { + String dungeonName =dungeonGen.schematicPath.toLowerCase(); + + if(dungeonName.contains(command[0].toLowerCase())) + { + link = dimHelper.instance.createPocket(link,true, true); + dimHelper.dimList.get(link.destDimID).dungeonGenerator=dungeonGen; + sender.sendChatToPlayer("Genned dungeon " +dungeonName); + return; + } + } + if(command!=null&&!command[0].equals("random")) + { + sender.sendChatToPlayer("could not find dungeon, 'list' for list of dungeons"); + } + } + else + { + sender.sendChatToPlayer("invalid arguments- 'random' for random dungeon, or 'list' for dungeon names"); + } + } +} \ No newline at end of file diff --git a/StevenDimDoors/mod_pocketDim/commands/CommandDeleteAllLinks.java b/StevenDimDoors/mod_pocketDim/commands/CommandDeleteAllLinks.java index 4ac64e9..6f37790 100644 --- a/StevenDimDoors/mod_pocketDim/commands/CommandDeleteAllLinks.java +++ b/StevenDimDoors/mod_pocketDim/commands/CommandDeleteAllLinks.java @@ -2,72 +2,67 @@ package StevenDimDoors.mod_pocketDim.commands; import java.util.ArrayList; -import cpw.mods.fml.common.FMLCommonHandler; - +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; import StevenDimDoors.mod_pocketDim.DimData; import StevenDimDoors.mod_pocketDim.LinkData; -import StevenDimDoors.mod_pocketDim.mod_pocketDim; import StevenDimDoors.mod_pocketDim.helpers.dimHelper; -import net.minecraft.command.CommandBase; -import net.minecraft.command.ICommandSender; -import net.minecraft.world.World; -public class CommandDeleteAllLinks extends CommandBase +public class CommandDeleteAllLinks extends DDCommandBase { - public String getCommandName()//the name of our command + private static CommandDeleteAllLinks instance = null; + + private CommandDeleteAllLinks() { - return "dimdoors-deleteLinksInDim"; + super("dd-deletelinks"); } + public static CommandDeleteAllLinks instance() + { + if (instance == null) + instance = new CommandDeleteAllLinks(); - + return instance; + } @Override - public void processCommand(ICommandSender var1, String[] var2) - + protected void processCommand(EntityPlayer sender, String[] command) { int linksRemoved=0; int targetDim; boolean shouldGo= true; - - if(var2.length==0) + + if(command.length==0) { - targetDim= this.getCommandSenderAsPlayer(var1).worldObj.provider.dimensionId; + targetDim= sender.worldObj.provider.dimensionId; } - else if(var2.length==1) + else if(command.length==1) { - targetDim= this.parseInt(var1, var2[0]); + targetDim = parseInt(sender, command[0]); if(!dimHelper.dimList.containsKey(targetDim)) { - this.getCommandSenderAsPlayer(var1).sendChatToPlayer("Error- dim "+targetDim+" not registered"); + sender.sendChatToPlayer("Error- dim "+targetDim+" not registered"); shouldGo=false; - } } else { targetDim=0; shouldGo=false; - this.getCommandSenderAsPlayer(var1).sendChatToPlayer("Error-Invalid argument, delete_all_links or blank for current dim"); - - + sender.sendChatToPlayer("Error-Invalid argument, delete_all_links or blank for current dim"); } - - - - + if(shouldGo) { if(dimHelper.dimList.containsKey(targetDim)) { DimData dim = dimHelper.dimList.get(targetDim); - ArrayList linksInDim = dim.printAllLinkData(); - - for(LinkData link : linksInDim) + + for (LinkData link : linksInDim) { World targetWorld = dimHelper.getWorld(targetDim); - + if(targetWorld==null) { dimHelper.initDimension(targetDim); @@ -76,36 +71,14 @@ public class CommandDeleteAllLinks extends CommandBase { dimHelper.initDimension(targetDim); } - - targetWorld = dimHelper.getWorld(targetDim); - - { - dim.removeLinkAtCoords(link); - - - - targetWorld.setBlock(link.locXCoord, link.locYCoord, link.locZCoord, 0); - - - linksRemoved++; - } - + dim.removeLinkAtCoords(link); + targetWorld.setBlock(link.locXCoord, link.locYCoord, link.locZCoord, 0); + linksRemoved++; } - //dim.linksInThisDim.clear(); - this.getCommandSenderAsPlayer(var1).sendChatToPlayer("Removed "+linksRemoved+" links."); - + sender.sendChatToPlayer("Removed " + linksRemoved + " links."); } - } - - // this.getCommandSenderAsPlayer(var1).sendChatToPlayer(String.valueOf(var2)); - // this.getCommandSenderAsPlayer(var1).sendChatToPlayer(String.valueOf(var2.length)); - // this.getCommandSenderAsPlayer(var1).sendChatToPlayer("Removed "+linksRemoved+" rifts."); - - - // TODO Auto-generated method stub - } } \ No newline at end of file diff --git a/StevenDimDoors/mod_pocketDim/commands/CommandDeleteDimensionData.java b/StevenDimDoors/mod_pocketDim/commands/CommandDeleteDimensionData.java index d09afd4..f80ad1a 100644 --- a/StevenDimDoors/mod_pocketDim/commands/CommandDeleteDimensionData.java +++ b/StevenDimDoors/mod_pocketDim/commands/CommandDeleteDimensionData.java @@ -3,60 +3,55 @@ package StevenDimDoors.mod_pocketDim.commands; import java.util.ArrayList; import java.util.Collection; -import cpw.mods.fml.common.FMLCommonHandler; - +import net.minecraft.entity.player.EntityPlayer; import StevenDimDoors.mod_pocketDim.DimData; import StevenDimDoors.mod_pocketDim.LinkData; -import StevenDimDoors.mod_pocketDim.mod_pocketDim; import StevenDimDoors.mod_pocketDim.helpers.dimHelper; -import net.minecraft.command.CommandBase; -import net.minecraft.command.ICommandSender; -import net.minecraft.world.World; -public class CommandDeleteDimData extends CommandBase +public class CommandDeleteDimensionData extends DDCommandBase { - public String getCommandName()//the name of our command + private static CommandDeleteDimensionData instance = null; + + private CommandDeleteDimensionData() { - return "dimdoors-deleteDimData"; + super("dd-deletedimension"); + } + + public static CommandDeleteDimensionData instance() + { + if (instance == null) + instance = new CommandDeleteDimensionData(); + + return instance; } - - - @Override - public void processCommand(ICommandSender var1, String[] var2) - + protected void processCommand(EntityPlayer sender, String[] command) { int linksRemoved=0; int targetDim; boolean shouldGo= true; - if(var2.length==0) + if (command.length==0) { - targetDim= this.getCommandSenderAsPlayer(var1).worldObj.provider.dimensionId; + targetDim= sender.worldObj.provider.dimensionId; } - else if(var2.length==1) + else if (command.length==1) { - targetDim= this.parseInt(var1, var2[0]); + targetDim = parseInt(sender, command[0]); if(!dimHelper.dimList.containsKey(targetDim)) { - this.getCommandSenderAsPlayer(var1).sendChatToPlayer("Error- dim "+targetDim+" not registered"); + sender.sendChatToPlayer("Error- dim "+targetDim+" not registered"); shouldGo=false; - } } else { targetDim=0; shouldGo=false; - this.getCommandSenderAsPlayer(var1).sendChatToPlayer("Error-Invalid argument, delete_dim_data or blank for current dim"); - - + sender.sendChatToPlayer("Error-Invalid argument, delete_dim_data or blank for current dim"); } - - - if(shouldGo) { if(dimHelper.dimList.containsKey(targetDim)) @@ -65,7 +60,7 @@ public class CommandDeleteDimData extends CommandBase { for(DimData dimData :dimHelper.dimList.values()) { - Collection links= new ArrayList(); + Collection links= new ArrayList(); links.addAll( dimData.printAllLinkData()); for(LinkData link : links) @@ -80,33 +75,20 @@ public class CommandDeleteDimData extends CommandBase linksRemoved++; } } - - } } catch(Exception e) { e.printStackTrace(); - } dimHelper.dimList.remove(targetDim); - this.getCommandSenderAsPlayer(var1).sendChatToPlayer("Removed dimension "+targetDim+" from DimDoors and deleted "+linksRemoved+" links"); - + sender.sendChatToPlayer("Removed dimension " + targetDim + " from DimDoors and deleted " + linksRemoved + " links"); } else { - this.getCommandSenderAsPlayer(var1).sendChatToPlayer("Error- dimension "+targetDim+" not registered with dimDoors"); - } - + sender.sendChatToPlayer("Error- dimension "+targetDim+" not registered with dimDoors"); + } } - - // this.getCommandSenderAsPlayer(var1).sendChatToPlayer(String.valueOf(var2)); - // this.getCommandSenderAsPlayer(var1).sendChatToPlayer(String.valueOf(var2.length)); - // this.getCommandSenderAsPlayer(var1).sendChatToPlayer("Removed "+linksRemoved+" rifts."); - - - // TODO Auto-generated method stub - } } \ No newline at end of file diff --git a/StevenDimDoors/mod_pocketDim/commands/CommandDeleteRifts.java b/StevenDimDoors/mod_pocketDim/commands/CommandDeleteRifts.java index 2e616c5..6bd020d 100644 --- a/StevenDimDoors/mod_pocketDim/commands/CommandDeleteRifts.java +++ b/StevenDimDoors/mod_pocketDim/commands/CommandDeleteRifts.java @@ -2,78 +2,68 @@ package StevenDimDoors.mod_pocketDim.commands; import java.util.ArrayList; -import cpw.mods.fml.common.FMLCommonHandler; - -import StevenDimDoors.mod_pocketDim.DDProperties; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; import StevenDimDoors.mod_pocketDim.DimData; import StevenDimDoors.mod_pocketDim.LinkData; import StevenDimDoors.mod_pocketDim.mod_pocketDim; import StevenDimDoors.mod_pocketDim.helpers.dimHelper; -import net.minecraft.command.CommandBase; -import net.minecraft.command.ICommandSender; -import net.minecraft.world.World; -public class CommandDeleteRifts extends CommandBase +public class CommandDeleteRifts extends DDCommandBase { - public CommandDeleteRifts() + private static CommandDeleteRifts instance = null; + + private CommandDeleteRifts() { - if (properties == null) - properties = DDProperties.instance(); + super("dd-???"); } - - private static DDProperties properties = null; - - public String getCommandName() + + public static CommandDeleteRifts instance() { - return "dimdoors-cleanupRifts"; + if (instance == null) + instance = new CommandDeleteRifts(); + + return instance; } @Override - public void processCommand(ICommandSender var1, String[] var2) - + protected void processCommand(EntityPlayer sender, String[] command) { int linksRemoved=0; int targetDim; boolean shouldGo= true; - - if(var2.length==0) + + if(command.length==0) { - targetDim= this.getCommandSenderAsPlayer(var1).worldObj.provider.dimensionId; + targetDim= sender.worldObj.provider.dimensionId; } - else if(var2.length==1) + else if(command.length==1) { - targetDim= this.parseInt(var1, var2[0]); + targetDim = parseInt(sender, command[0]); if(!dimHelper.dimList.containsKey(targetDim)) { - this.getCommandSenderAsPlayer(var1).sendChatToPlayer("Error- dim "+targetDim+" not registered"); + sender.sendChatToPlayer("Error- dim "+targetDim+" not registered"); shouldGo=false; - } } else { targetDim=0; shouldGo=false; - this.getCommandSenderAsPlayer(var1).sendChatToPlayer("Error-Invalid argument, delete_links or blank for current dim"); - - + sender.sendChatToPlayer("Error-Invalid argument, delete_links or blank for current dim"); } - - - - + if(shouldGo) { if(dimHelper.dimList.containsKey(targetDim)) { DimData dim = dimHelper.dimList.get(targetDim); - ArrayList linksInDim = dim.printAllLinkData(); - + for(LinkData link : linksInDim) { World targetWorld = dimHelper.getWorld(targetDim); - + if(targetWorld==null) { dimHelper.initDimension(targetDim); @@ -81,37 +71,18 @@ public class CommandDeleteRifts extends CommandBase else if(targetWorld.provider==null) { dimHelper.initDimension(targetDim); - } - targetWorld = dimHelper.getWorld(targetDim); - - if(targetWorld.getBlockId(link.locXCoord, link.locYCoord, link.locZCoord)==properties.RiftBlockID) + targetWorld = dimHelper.getWorld(targetDim); + + if (targetWorld.getBlockId(link.locXCoord, link.locYCoord, link.locZCoord) == mod_pocketDim.blockRift.blockID) { dim.removeLinkAtCoords(link); - - - targetWorld.setBlock(link.locXCoord, link.locYCoord, link.locZCoord, 0); - - linksRemoved++; } - } - - //dim.linksInThisDim.clear(); - this.getCommandSenderAsPlayer(var1).sendChatToPlayer("Removed "+linksRemoved+" rifts."); - - } - + sender.sendChatToPlayer("Removed "+linksRemoved+" rifts."); + } } - - // this.getCommandSenderAsPlayer(var1).sendChatToPlayer(String.valueOf(var2)); - // this.getCommandSenderAsPlayer(var1).sendChatToPlayer(String.valueOf(var2.length)); - // this.getCommandSenderAsPlayer(var1).sendChatToPlayer("Removed "+linksRemoved+" rifts."); - - - // TODO Auto-generated method stub - } } \ No newline at end of file diff --git a/StevenDimDoors/mod_pocketDim/commands/CommandEndDungeonCreation.java b/StevenDimDoors/mod_pocketDim/commands/CommandEndDungeonCreation.java index 584114f..6f49de7 100644 --- a/StevenDimDoors/mod_pocketDim/commands/CommandEndDungeonCreation.java +++ b/StevenDimDoors/mod_pocketDim/commands/CommandEndDungeonCreation.java @@ -2,91 +2,79 @@ package StevenDimDoors.mod_pocketDim.commands; import java.io.File; -import net.minecraft.command.CommandBase; -import net.minecraft.command.ICommandSender; import net.minecraft.entity.player.EntityPlayer; import StevenDimDoors.mod_pocketDim.DDProperties; import StevenDimDoors.mod_pocketDim.helpers.DungeonHelper; -public class CommandEndDungeonCreation extends CommandBase -{ - private static DDProperties properties = null; +public class CommandEndDungeonCreation extends DDCommandBase +{ + private static CommandEndDungeonCreation instance = null; - public CommandEndDungeonCreation() + private CommandEndDungeonCreation() { - if (properties == null) - properties = DDProperties.instance(); + super("dd-export"); } - public String getCommandName()//the name of our command + public static CommandEndDungeonCreation instance() { - return "dimdoors-endDungeonCreation"; + if (instance == null) + instance = new CommandEndDungeonCreation(); + + return instance; } @Override - public void processCommand(ICommandSender var1, String[] var2) + protected void processCommand(EntityPlayer sender, String[] command) { DungeonHelper dungeonHelper = DungeonHelper.instance(); + DDProperties properties = DDProperties.instance(); - EntityPlayer player = this.getCommandSenderAsPlayer(var1); - - if (!dungeonHelper.customDungeonStatus.containsKey(player.worldObj.provider.dimensionId)) + if (!dungeonHelper.isCustomDungeon(sender.worldObj.provider.dimensionId)) { - if (var2.length < 2) + if (command.length < 2) { - player.sendChatToPlayer("Must have started dungeon creation, use argument OVERRIDE to export anyway"); + sender.sendChatToPlayer("Must have started dungeon creation, use argument OVERRIDE to export anyway"); return; } - else if (!var2[1].contains("OVERRIDE")) + else if (!command[1].contains("OVERRIDE")) { - player.sendChatToPlayer("Must have started dungeon creation, use argument OVERRIDE to export anyway"); + sender.sendChatToPlayer("Must have started dungeon creation, use argument OVERRIDE to export anyway"); return; } } - int x = (int) player.posX; - int y = (int) player.posY; - int z = (int) player.posZ; + int x = (int) sender.posX; + int y = (int) sender.posY; + int z = (int) sender.posZ; - if(var2.length==0) + if (command.length == 0) { - player.sendChatToPlayer("Must name file"); + sender.sendChatToPlayer("Must name file"); } - else if(!player.worldObj.isRemote) + else if(!sender.worldObj.isRemote) { //Check that the dungeon name is valid to prevent directory traversal and other forms of abuse - if (DungeonHelper.NamePattern.matcher(var2[0]).matches()) + if (DungeonHelper.NamePattern.matcher(command[0]).matches()) { - String exportPath = properties.CustomSchematicDirectory + "/" + var2[0] + ".schematic"; - if (dungeonHelper.exportDungeon(player.worldObj, x, y, z, exportPath)) + String exportPath = properties.CustomSchematicDirectory + "/" + command[0] + ".schematic"; + if (dungeonHelper.exportDungeon(sender.worldObj, x, y, z, exportPath)) { - player.sendChatToPlayer("Saved dungeon schematic in " + exportPath); + sender.sendChatToPlayer("Saved dungeon schematic in " + exportPath); dungeonHelper.registerCustomDungeon(new File(exportPath)); - - if (dungeonHelper.customDungeonStatus.containsKey(player.worldObj.provider.dimensionId) && !player.worldObj.isRemote) - { - // mod_pocketDim.dungeonHelper.customDungeonStatus.remove(player.worldObj.provider.dimensionId); - // dimHelper.instance.teleportToPocket(player.worldObj, mod_pocketDim.dungeonHelper.customDungeonStatus.get(player.worldObj.provider.dimensionId), player); - - } } else { - player.sendChatToPlayer("Failed to save dungeon schematic!"); + sender.sendChatToPlayer("Failed to save dungeon schematic!"); } } else { - player.sendChatToPlayer("Invalid schematic name. Please use only letters, numbers, and underscores."); + sender.sendChatToPlayer("Invalid schematic name. Please use only letters, numbers, and underscores."); } } - - - // TODO Auto-generated method stub - } } \ No newline at end of file diff --git a/StevenDimDoors/mod_pocketDim/commands/CommandPrintDimensionData.java b/StevenDimDoors/mod_pocketDim/commands/CommandPrintDimensionData.java index 3d2aa9b..ca235d2 100644 --- a/StevenDimDoors/mod_pocketDim/commands/CommandPrintDimensionData.java +++ b/StevenDimDoors/mod_pocketDim/commands/CommandPrintDimensionData.java @@ -3,91 +3,68 @@ package StevenDimDoors.mod_pocketDim.commands; import java.util.ArrayList; import java.util.Collection; -import cpw.mods.fml.common.FMLCommonHandler; - +import net.minecraft.entity.player.EntityPlayer; import StevenDimDoors.mod_pocketDim.DimData; import StevenDimDoors.mod_pocketDim.LinkData; -import StevenDimDoors.mod_pocketDim.mod_pocketDim; import StevenDimDoors.mod_pocketDim.helpers.dimHelper; -import net.minecraft.command.CommandBase; -import net.minecraft.command.ICommandSender; -import net.minecraft.world.World; -public class CommandPrintDimData extends CommandBase +public class CommandPrintDimensionData extends DDCommandBase { - public String getCommandName()//the name of our command + private static CommandPrintDimensionData instance = null; + + private CommandPrintDimensionData() { - return "dimdoors-printDimData"; + super("dd-dimensiondata"); } + public static CommandPrintDimensionData instance() + { + if (instance == null) + instance = new CommandPrintDimensionData(); - + return instance; + } @Override - public void processCommand(ICommandSender var1, String[] var2) - + protected void processCommand(EntityPlayer sender, String[] command) { - int linksRemoved=0; int targetDim; boolean shouldGo= true; - - if(var2.length==0) + + if(command.length==0) { - targetDim= this.getCommandSenderAsPlayer(var1).worldObj.provider.dimensionId; + targetDim= sender.worldObj.provider.dimensionId; } - else if(var2.length==1) + else if(command.length==1) { - targetDim= this.parseInt(var1, var2[0]); + targetDim = parseInt(sender, command[0]); if(!dimHelper.dimList.containsKey(targetDim)) { - this.getCommandSenderAsPlayer(var1).sendChatToPlayer("Error- dim "+targetDim+" not registered"); + sender.sendChatToPlayer("Error- dim "+targetDim+" not registered"); shouldGo=false; - } } else { targetDim=0; shouldGo=false; - this.getCommandSenderAsPlayer(var1).sendChatToPlayer("Error-Invalid argument, print_dim_data or blank for current dim"); - - + sender.sendChatToPlayer("Error-Invalid argument, print_dim_data or blank for current dim"); } - - - - + if(shouldGo) { if(dimHelper.dimList.containsKey(targetDim)) { DimData dimData = dimHelper.dimList.get(targetDim); - Collection links= new ArrayList(); - links.addAll( dimData.printAllLinkData()); - - for(LinkData link : links) - { - - this.getCommandSenderAsPlayer(var1).sendChatToPlayer( link.printLinkData()); - } - - this.getCommandSenderAsPlayer(var1).sendChatToPlayer("DimID= "+dimData.dimID+"Dim depth = "+dimData.depth); + Collection links = new ArrayList(); + links.addAll( dimData.printAllLinkData()); + for (LinkData link : links) + { + sender.sendChatToPlayer(link.printLinkData()); } - - - } - else - { - } - - } - - // this.getCommandSenderAsPlayer(var1).sendChatToPlayer(String.valueOf(var2)); - // this.getCommandSenderAsPlayer(var1).sendChatToPlayer(String.valueOf(var2.length)); - // this.getCommandSenderAsPlayer(var1).sendChatToPlayer("Removed "+linksRemoved+" rifts."); - - - // TODO Auto-generated method stub - + sender.sendChatToPlayer("DimID= "+dimData.dimID+"Dim depth = "+dimData.depth); + } + } } +} diff --git a/StevenDimDoors/mod_pocketDim/commands/CommandPruneDimensions.java b/StevenDimDoors/mod_pocketDim/commands/CommandPruneDimensions.java index aa699da..32e1dce 100644 --- a/StevenDimDoors/mod_pocketDim/commands/CommandPruneDimensions.java +++ b/StevenDimDoors/mod_pocketDim/commands/CommandPruneDimensions.java @@ -3,29 +3,37 @@ package StevenDimDoors.mod_pocketDim.commands; import java.util.ArrayList; import java.util.Collection; -import net.minecraft.command.CommandBase; -import net.minecraft.command.ICommandSender; +import net.minecraft.entity.player.EntityPlayer; import StevenDimDoors.mod_pocketDim.DimData; import StevenDimDoors.mod_pocketDim.LinkData; import StevenDimDoors.mod_pocketDim.helpers.dimHelper; -public class CommandPruneDims extends CommandBase +public class CommandPruneDimensions extends DDCommandBase { - public String getCommandName()//the name of our command + private static CommandPruneDimensions instance = null; + + private CommandPruneDimensions() { - return "dimdoors-prunePockets"; + super("dd-prune"); + } + + public static CommandPruneDimensions instance() + { + if (instance == null) + instance = new CommandPruneDimensions(); + + return instance; } @Override - public void processCommand(ICommandSender var1, String[] var2) + protected void processCommand(EntityPlayer sender, String[] command) { int numRemoved=0; - ArrayList dimsWithLinks=new ArrayList(); - Collection allDims = new ArrayList(); + ArrayList dimsWithLinks = new ArrayList(); + Collection allDims = new ArrayList(); allDims.addAll(dimHelper.dimList.values()); for(DimData data: allDims) { - for(LinkData link:data.printAllLinkData()) { if(!dimsWithLinks.contains(link.destDimID)) @@ -34,7 +42,6 @@ public class CommandPruneDims extends CommandBase } } } - for(LinkData link : dimHelper.instance.interDimLinkList.values()) { if(!dimsWithLinks.contains(link.destDimID)) @@ -42,7 +49,6 @@ public class CommandPruneDims extends CommandBase dimsWithLinks.add(link.destDimID); } } - for(DimData data : allDims) { if(!dimsWithLinks.contains(data.dimID)) @@ -52,6 +58,6 @@ public class CommandPruneDims extends CommandBase } } dimHelper.instance.save(); - getCommandSenderAsPlayer(var1).sendChatToPlayer("Removed "+numRemoved+" unreachable pocket dims."); + sender.sendChatToPlayer("Removed " + numRemoved + " unreachable pocket dims."); } } \ No newline at end of file diff --git a/StevenDimDoors/mod_pocketDim/commands/CommandStartDungeonCreation.java b/StevenDimDoors/mod_pocketDim/commands/CommandStartDungeonCreation.java index 57aa12e..4a645fd 100644 --- a/StevenDimDoors/mod_pocketDim/commands/CommandStartDungeonCreation.java +++ b/StevenDimDoors/mod_pocketDim/commands/CommandStartDungeonCreation.java @@ -1,62 +1,40 @@ package StevenDimDoors.mod_pocketDim.commands; -import java.util.ArrayList; - -import cpw.mods.fml.common.FMLCommonHandler; - -import StevenDimDoors.mod_pocketDim.DDProperties; -import StevenDimDoors.mod_pocketDim.DimData; -import StevenDimDoors.mod_pocketDim.LinkData; -import StevenDimDoors.mod_pocketDim.mod_pocketDim; -import StevenDimDoors.mod_pocketDim.helpers.DungeonHelper; -import StevenDimDoors.mod_pocketDim.helpers.dimHelper; -import StevenDimDoors.mod_pocketDim.items.itemDimDoor; -import net.minecraft.block.Block; -import net.minecraft.command.CommandBase; -import net.minecraft.command.ICommandSender; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.world.World; +import StevenDimDoors.mod_pocketDim.LinkData; +import StevenDimDoors.mod_pocketDim.helpers.DungeonHelper; -public class CommandStartDungeonCreation extends CommandBase +public class CommandStartDungeonCreation extends DDCommandBase { - public CommandStartDungeonCreation() + private static CommandStartDungeonCreation instance = null; + + private CommandStartDungeonCreation() { - if (properties == null) - properties = DDProperties.instance(); + super("dd-create"); } - private static DDProperties properties = null; - - public String getCommandName()//the name of our command + public static CommandStartDungeonCreation instance() { - return "dimdoors-startDungeonCreation"; + if (instance == null) + instance = new CommandStartDungeonCreation(); + + return instance; } @Override - public void processCommand(ICommandSender var1, String[] var2) + protected void processCommand(EntityPlayer sender, String[] command) { - - EntityPlayer player = this.getCommandSenderAsPlayer(var1); - - int x = (int) player.posX; - int y = (int) player.posY; - int z = (int) player.posZ; - - if(!player.worldObj.isRemote) + if (!sender.worldObj.isRemote) { - - LinkData link = new LinkData(player.worldObj.provider.dimensionId, 0, x, y+1, z, x, y+1, z, true, 3); - - link = dimHelper.instance.createPocket(link,true, false); + //Place a door leading to a pocket dimension where the player is standing. + //The pocket dimension will be serve as a room for the player to build a dungeon. + int x = (int) sender.posX; + int y = (int) sender.posY; + int z = (int) sender.posZ; + LinkData link = DungeonHelper.instance().createCustomDungeonDoor(sender.worldObj, x, y, z); - itemDimDoor.placeDoorBlock(player.worldObj, x, y, z, 3, Block.blocksList[properties.WarpDoorID]); - - // dimHelper.instance.teleportToPocket(player.worldObj, link, player); - - DungeonHelper.instance().customDungeonStatus.put(link.destDimID, dimHelper.instance.getLinkDataFromCoords(link.destXCoord, link.destYCoord, link.destZCoord, link.destDimID)); - - this.getCommandSenderAsPlayer(var1).sendChatToPlayer("DimID = "+ link.destDimID); + //Notify the player + sender.sendChatToPlayer("Created a door to a pocket dimension (ID = " + link.destDimID + "). Please build your dungeon there."); } - } } \ No newline at end of file diff --git a/StevenDimDoors/mod_pocketDim/commands/DDCommandBase.java b/StevenDimDoors/mod_pocketDim/commands/DDCommandBase.java new file mode 100644 index 0000000..2197f5d --- /dev/null +++ b/StevenDimDoors/mod_pocketDim/commands/DDCommandBase.java @@ -0,0 +1,48 @@ +package StevenDimDoors.mod_pocketDim.commands; + +import net.minecraft.command.CommandBase; +import net.minecraft.command.ICommandSender; +import net.minecraft.entity.player.EntityPlayer; +import cpw.mods.fml.common.event.FMLServerStartingEvent; + +/* + * An abstract base class for our Dimensional Doors commands. This cleans up the code a little and provides + * some convenience improvements. + */ +public abstract class DDCommandBase extends CommandBase +{ + private String name; + + public DDCommandBase(String name) + { + this.name = name; + } + + /* + * When overridden in a derived class, processes the command sent by the server. + */ + protected abstract void processCommand(EntityPlayer sender, String[] command); + + public final String getCommandName() + { + return name; + } + + /* + * Registers the command at server startup. + */ + public void register(FMLServerStartingEvent event) + { + event.registerServerCommand(this); + } + + /* + * Method invoked by the server to execute a command. The call is forwarded to a derived class + * to provide the sending player directly. + */ + public final void processCommand(ICommandSender sender, String[] command) + { + //Forward the command + processCommand(getCommandSenderAsPlayer(sender), command); + } +} diff --git a/StevenDimDoors/mod_pocketDim/helpers/DungeonHelper.java b/StevenDimDoors/mod_pocketDim/helpers/DungeonHelper.java index 209a077..5c3286f 100644 --- a/StevenDimDoors/mod_pocketDim/helpers/DungeonHelper.java +++ b/StevenDimDoors/mod_pocketDim/helpers/DungeonHelper.java @@ -24,6 +24,7 @@ import StevenDimDoors.mod_pocketDim.helpers.jnbt.ListTag; import StevenDimDoors.mod_pocketDim.helpers.jnbt.NBTOutputStream; import StevenDimDoors.mod_pocketDim.helpers.jnbt.ShortTag; import StevenDimDoors.mod_pocketDim.helpers.jnbt.Tag; +import StevenDimDoors.mod_pocketDim.items.itemDimDoor; import StevenDimDoors.mod_pocketDim.util.WeightedContainer; public class DungeonHelper @@ -58,7 +59,7 @@ public class DungeonHelper private Random rand = new Random(); - public HashMap customDungeonStatus = new HashMap(); + private HashMap customDungeonStatus = new HashMap(); public ArrayList customDungeons = new ArrayList(); public ArrayList registeredDungeons = new ArrayList(); @@ -103,10 +104,10 @@ public class DungeonHelper if (properties == null) properties = DDProperties.instance(); - initializeDungeons(); + registerCustomDungeons(); } - private void initializeDungeons() + private void registerCustomDungeons() { File file = new File(properties.CustomSchematicDirectory); if (file.exists() || file.mkdir()) @@ -143,6 +144,28 @@ public class DungeonHelper return instance; } + public LinkData createCustomDungeonDoor(World world, int x, int y, int z) + { + //Create a link above the specified position. Link to a new pocket dimension. + LinkData link = new LinkData(world.provider.dimensionId, 0, x, y + 1, z, x, y + 1, z, true, 3); + link = dimHelper.instance.createPocket(link, true, false); + + //Place a Warp Door linked to that pocket + itemDimDoor.placeDoorBlock(world, x, y, z, 3, mod_pocketDim.ExitDoor); + + //Register the pocket as a custom dungeon + customDungeonStatus.put(link.destDimID, + dimHelper.instance.getLinkDataFromCoords(link.destXCoord, link.destYCoord, link.destZCoord, link.destDimID)); + + return link; + } + + public boolean isCustomDungeon(int dimensionID) + { + //TODO: Should we simply treat all pocket dimensions as valid custom dungeons? ~SenseiKiwi + return customDungeonStatus.containsKey(dimensionID); + } + public boolean validateSchematicName(String name) { String[] dungeonData = name.split("_"); diff --git a/StevenDimDoors/mod_pocketDim/mod_pocketDim.java b/StevenDimDoors/mod_pocketDim/mod_pocketDim.java index 740fbf1..63bee9f 100644 --- a/StevenDimDoors/mod_pocketDim/mod_pocketDim.java +++ b/StevenDimDoors/mod_pocketDim/mod_pocketDim.java @@ -6,7 +6,6 @@ import java.util.HashMap; import net.minecraft.block.Block; import net.minecraft.block.material.Material; -import net.minecraft.command.ICommand; import net.minecraft.entity.EntityEggInfo; import net.minecraft.entity.EntityList; import net.minecraft.entity.item.EntityItem; @@ -23,13 +22,13 @@ import StevenDimDoors.mod_pocketDim.blocks.ChaosDoor; import StevenDimDoors.mod_pocketDim.blocks.ExitDoor; import StevenDimDoors.mod_pocketDim.blocks.dimDoor; import StevenDimDoors.mod_pocketDim.blocks.dimHatch; -import StevenDimDoors.mod_pocketDim.commands.CommandAddDungeonRift; +import StevenDimDoors.mod_pocketDim.commands.CommandCreateDungeonRift; import StevenDimDoors.mod_pocketDim.commands.CommandDeleteAllLinks; -import StevenDimDoors.mod_pocketDim.commands.CommandDeleteDimData; +import StevenDimDoors.mod_pocketDim.commands.CommandDeleteDimensionData; import StevenDimDoors.mod_pocketDim.commands.CommandDeleteRifts; import StevenDimDoors.mod_pocketDim.commands.CommandEndDungeonCreation; -import StevenDimDoors.mod_pocketDim.commands.CommandPrintDimData; -import StevenDimDoors.mod_pocketDim.commands.CommandPruneDims; +import StevenDimDoors.mod_pocketDim.commands.CommandPrintDimensionData; +import StevenDimDoors.mod_pocketDim.commands.CommandPruneDimensions; import StevenDimDoors.mod_pocketDim.commands.CommandStartDungeonCreation; import StevenDimDoors.mod_pocketDim.helpers.DungeonHelper; import StevenDimDoors.mod_pocketDim.helpers.dimHelper; @@ -95,15 +94,6 @@ public class mod_pocketDim public static SchematicLoader loader; public static pocketTeleporter teleporter; - public static ICommand printDimData; - public static ICommand removeRiftsCommand; - public static ICommand pruneDimsCommand; - public static ICommand removeAllLinksCommand; - public static ICommand deleteDimDataCommand; - public static ICommand addDungeonRift; - public static ICommand endDungeonCreation; - public static ICommand startDungeonCreation; - public static Block transientDoor; public static Block ExitDoor; public static Block chaosDoor; @@ -155,15 +145,6 @@ public class mod_pocketDim loader = new SchematicLoader(); teleporter = new pocketTeleporter(); - - printDimData = new CommandPrintDimData(); - removeRiftsCommand = new CommandDeleteRifts(); - pruneDimsCommand = new CommandPruneDims(); - removeAllLinksCommand = new CommandDeleteAllLinks(); - deleteDimDataCommand = new CommandDeleteDimData(); - addDungeonRift = new CommandAddDungeonRift(); - endDungeonCreation = new CommandEndDungeonCreation(); - startDungeonCreation = new CommandStartDungeonCreation(); tracker = new PlayerRespawnTracker(); riftGen = new RiftGenerator(); } @@ -409,14 +390,14 @@ public class mod_pocketDim @ServerStarting public void serverStarting(FMLServerStartingEvent event) { - event.registerServerCommand(removeRiftsCommand); - event.registerServerCommand(pruneDimsCommand); - event.registerServerCommand(removeAllLinksCommand); - event.registerServerCommand(deleteDimDataCommand); - event.registerServerCommand(addDungeonRift); - event.registerServerCommand(mod_pocketDim.startDungeonCreation); - event.registerServerCommand(mod_pocketDim.printDimData); - event.registerServerCommand(mod_pocketDim.endDungeonCreation); + CommandCreateDungeonRift.instance().register(event); + CommandDeleteAllLinks.instance().register(event); + CommandDeleteDimensionData.instance().register(event); + CommandDeleteRifts.instance().register(event); + CommandEndDungeonCreation.instance().register(event); + CommandPrintDimensionData.instance().register(event); + CommandPruneDimensions.instance().register(event); + CommandStartDungeonCreation.instance().register(event); dimHelper.instance.load(); if(!dimHelper.dimList.containsKey(properties.LimboDimensionID)) From a628f3c63b35d5094615c87d54f587a9e2b74d7f Mon Sep 17 00:00:00 2001 From: SenseiKiwi Date: Tue, 18 Jun 2013 13:34:03 -0400 Subject: [PATCH 4/4] Fixed Bug in RiftGenerator Fixed a small bug. DDProperties.WorldRiftGenerationEnabled is supposed to control whether rifts and gateways generate outside of Limbo. I assume that rifts and gateways are always supposed to generate in Limbo given the wording of that description. However, if the flag was set to false, we would also disable rift generation in Limbo. I've fixed this by ignoring that flag if we detect that the chunk is in Limbo. --- StevenDimDoors/mod_pocketDim/RiftGenerator.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/StevenDimDoors/mod_pocketDim/RiftGenerator.java b/StevenDimDoors/mod_pocketDim/RiftGenerator.java index 99d85f2..0877c99 100644 --- a/StevenDimDoors/mod_pocketDim/RiftGenerator.java +++ b/StevenDimDoors/mod_pocketDim/RiftGenerator.java @@ -8,6 +8,7 @@ import net.minecraft.world.World; import net.minecraft.world.chunk.IChunkProvider; import StevenDimDoors.mod_pocketDim.helpers.dimHelper; import StevenDimDoors.mod_pocketDim.items.ItemRiftBlade; +import StevenDimDoors.mod_pocketDim.world.LimboProvider; import StevenDimDoors.mod_pocketDim.world.pocketProvider; import cpw.mods.fml.common.IWorldGenerator; @@ -35,7 +36,8 @@ public class RiftGenerator implements IWorldGenerator { //Don't generate rifts or gateways if the rift generation flag is disabled, //the current world is a pocket dimension, or the world is remote. - if (!properties.WorldRiftGenerationEnabled || world.provider instanceof pocketProvider || world.isRemote) + if ((!properties.WorldRiftGenerationEnabled && !(world.provider instanceof LimboProvider)) || + world.provider instanceof pocketProvider || world.isRemote) { return; }