package mcjty.rftools.commands;
import mcjty.rftools.dimension.DimensionInformation;
import mcjty.rftools.dimension.RfToolsDimensionManager;
import net.minecraft.command.ICommandSender;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import java.io.File;
public class CmdSaveDims extends AbstractRfToolsCommand {
@Override
public String getHelp() {
return "<directory>";
}
@Override
public String getCommand() {
return "savedims";
}
@Override
public int getPermissionLevel() {
return 1;
}
@Override
public boolean isClientSide() {
return false;
}
@Override
public void execute(ICommandSender sender, String[] args) {
if (args.length < 2) {
sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "The directory parameters is missing!"));
return;
} else if (args.length > 2) {
sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Too many parameters!"));
return;
}
String directory = fetchString(sender, args, 1, null);
if (!directory.endsWith(File.separator)) {
directory += File.separator;
}
if (!new File(directory).mkdirs()) {
sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Failed to create directory!"));
return;
}
World world = sender.getEntityWorld();
RfToolsDimensionManager dimensionManager = RfToolsDimensionManager.getDimensionManager(world);
for (Integer dim : dimensionManager.getDimensions().keySet()) {
DimensionInformation information = dimensionManager.getDimensionInformation(dim);
if (information != null) {
String filename = directory + "dimension" + dim;
String error = information.buildJson(filename);
if (error != null) {
sender.addChatMessage(new ChatComponentText(EnumChatFormatting.RED + "Error: " + error));
}
}
}
}
}