Files
DimDoors/StevenDimDoors/mod_pocketDim/commands/CommandResetDungeons.java
CannibalVox 2388be2681 Merge branch '1.6.2-code' of github.com:StevenRS11/DimDoors
Conflicts:
	StevenDimDoors/mod_pocketDim/CraftingManager.java
	StevenDimDoors/mod_pocketDim/EventHookContainer.java
	StevenDimDoors/mod_pocketDim/blocks/BaseDimDoor.java
	StevenDimDoors/mod_pocketDim/blocks/BlockDimWall.java
	StevenDimDoors/mod_pocketDim/blocks/BlockDimWallPerm.java
	StevenDimDoors/mod_pocketDim/blocks/BlockDoorGold.java
	StevenDimDoors/mod_pocketDim/blocks/BlockGoldDimDoor.java
	StevenDimDoors/mod_pocketDim/blocks/BlockLimbo.java
	StevenDimDoors/mod_pocketDim/blocks/BlockRift.java
	StevenDimDoors/mod_pocketDim/blocks/TransTrapdoor.java
	StevenDimDoors/mod_pocketDim/commands/CommandCreateDungeonRift.java
	StevenDimDoors/mod_pocketDim/commands/CommandCreatePocket.java
	StevenDimDoors/mod_pocketDim/commands/CommandDeleteAllLinks.java
	StevenDimDoors/mod_pocketDim/commands/CommandDeleteRifts.java
	StevenDimDoors/mod_pocketDim/commands/CommandExportDungeon.java
	StevenDimDoors/mod_pocketDim/commands/CommandResetDungeons.java
	StevenDimDoors/mod_pocketDim/commands/CommandTeleportPlayer.java
	StevenDimDoors/mod_pocketDim/commands/DDCommandBase.java
	StevenDimDoors/mod_pocketDim/core/DDTeleporter.java
	StevenDimDoors/mod_pocketDim/core/NewDimData.java
	StevenDimDoors/mod_pocketDim/core/PocketManager.java
	StevenDimDoors/mod_pocketDim/helpers/ChunkLoaderHelper.java
	StevenDimDoors/mod_pocketDim/items/ItemBlockDimWall.java
	StevenDimDoors/mod_pocketDim/items/ItemRiftBlade.java
	StevenDimDoors/mod_pocketDim/items/ItemRiftSignature.java
	StevenDimDoors/mod_pocketDim/items/ItemStabilizedRiftSignature.java
	StevenDimDoors/mod_pocketDim/mod_pocketDim.java
	StevenDimDoors/mod_pocketDim/ticking/MobMonolith.java
	StevenDimDoors/mod_pocketDim/tileentities/TileEntityDimDoorGold.java
	StevenDimDoors/mod_pocketDim/watcher/ClientLinkData.java
	StevenDimDoors/mod_pocketDim/world/CustomSkyProvider.java
	StevenDimDoors/mod_pocketDim/world/PocketBuilder.java
	StevenDimDoors/mod_pocketDimClient/RenderDimDoor.java
	StevenDimDoors/mod_pocketDimClient/RenderMobObelisk.java
	StevenDimDoors/mod_pocketDimClient/RenderTransTrapdoor.java
	build.xml
2013-12-06 21:09:14 -06:00

97 lines
2.5 KiB
Java

package StevenDimDoors.mod_pocketDim.commands;
import java.util.ArrayList;
import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraftforge.common.DimensionManager;
import StevenDimDoors.mod_pocketDim.core.DimLink;
import StevenDimDoors.mod_pocketDim.core.LinkTypes;
import StevenDimDoors.mod_pocketDim.core.NewDimData;
import StevenDimDoors.mod_pocketDim.core.PocketManager;
@SuppressWarnings("deprecation")
public class CommandResetDungeons extends DDCommandBase
{
private static CommandResetDungeons instance = null;
private CommandResetDungeons()
{
super("dd-resetdungeons", "");
}
public static CommandResetDungeons instance()
{
if (instance == null)
instance = new CommandResetDungeons();
return instance;
}
@Override
public String getCommandUsage(ICommandSender sender) {
return "/dd-resetdungeons";
}
@Override
protected DDCommandResult processCommand(EntityPlayer sender, String[] command)
{
if(sender.worldObj.isRemote)
{
return DDCommandResult.SUCCESS;
}
if (command.length > 0)
{
return DDCommandResult.TOO_FEW_ARGUMENTS;
}
int dungeonCount = 0;
int resetCount = 0;
ArrayList<Integer> dimsToDelete = new ArrayList<Integer>();
ArrayList<Integer> dimsToFix = new ArrayList<Integer>();
for (NewDimData data : PocketManager.getDimensions())
{
if(DimensionManager.getWorld(data.id())==null&&data.isDungeon())
{
resetCount++;
dungeonCount++;
dimsToDelete.add(data.id());
}
else if(data.isDungeon())
{
dimsToFix.add(data.id());
dungeonCount++;
for(DimLink link : data.links())
{
if(link.linkType()==LinkTypes.REVERSE)
{
data.createLink(link.source(), LinkTypes.DUNGEON_EXIT, link.orientation());
}
if(link.linkType()==LinkTypes.DUNGEON)
{
data.createLink(link.source(), LinkTypes.DUNGEON, link.orientation());
}
}
}
}
for(Integer dimID:dimsToDelete)
{
PocketManager.deletePocket(PocketManager.getDimensionData(dimID), true);
}
/**
* temporary workaround
*/
for(Integer dimID: dimsToFix)
{
PocketManager.getDimensionData(dimID).setParentToRoot();
}
//TODO- for some reason the parent field of loaded dimenions get reset to null if I call .setParentToRoot() before I delete the pockets.
//TODO implement blackList
//Notify the user of the results
sendChat(sender,("Reset complete. " + resetCount + " out of " + dungeonCount + " dungeons were reset."));
return DDCommandResult.SUCCESS;
}
}