DimDoors/StevenDimDoors/mod_pocketDim/commands/CommandAddDungeonRift.java
SenseiKiwi 17c9118126 Fixed Dungeon Listing and Formatting Bugs
Added a workaround so that the dungeon list produced by
CommandAddDungeonRift does not have repeated names. Also cleaned up the
code a bit - it's a mess in there. Part of the rewrite eliminated the
bug that caused some dungeon names to be preceded by a backslash (or
slash). I've noticed a different bug now - the dungeon tutorial file is
being included in the list of dungeons. I'll be fixing that in the next
commit.
2013-06-17 06:18:15 -04:00

146 lines
No EOL
3.5 KiB
Java

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<String> 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
}
}