DimDoors/StevenDimDoors/mod_pocketDim/commands/CommandResetDungeons.java

73 lines
1.9 KiB
Java
Raw Normal View History

package StevenDimDoors.mod_pocketDim.commands;
2013-10-02 06:52:18 +02:00
import java.util.ArrayList;
import net.minecraft.entity.player.EntityPlayer;
2013-10-02 06:52:18 +02:00
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;
public class CommandResetDungeons extends DDCommandBase
{
private static CommandResetDungeons instance = null;
private CommandResetDungeons()
{
2013-10-02 06:52:18 +02:00
super("dd-resetdungeons", "");
}
public static CommandResetDungeons instance()
{
if (instance == null)
instance = new CommandResetDungeons();
return instance;
}
@Override
protected DDCommandResult processCommand(EntityPlayer sender, String[] command)
{
if (command.length > 0)
{
return DDCommandResult.TOO_FEW_ARGUMENTS;
}
int dungeonCount = 0;
int resetCount = 0;
ArrayList<Integer> dimsToDelete = new ArrayList<Integer>();
for (NewDimData data : PocketManager.getDimensions())
{
2013-10-02 06:52:18 +02:00
dungeonCount++;
if(DimensionManager.getWorld(data.id())==null&&data.isDungeon())
2013-10-02 06:52:18 +02:00
{
dimsToDelete.add(data.id());
2013-10-02 06:52:18 +02:00
}
else if(data.isDungeon())
{
2013-10-02 06:52:18 +02:00
for(DimLink link : data.links())
{
2013-10-02 06:52:18 +02:00
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);
}
2013-10-02 06:52:18 +02:00
//TODO implement blackList
//Notify the user of the results
2013-10-02 06:52:18 +02:00
sender.sendChatToPlayer("Reset complete. " + resetCount + " out of " + dungeonCount + " dungeons were reset.");
return DDCommandResult.SUCCESS;
}
}