package com.brandon3055.townbuilder.schematics.commands; import com.brandon3055.townbuilder.schematics.SchematicHandler; import net.minecraft.command.CommandBase; import net.minecraft.command.ICommandSender; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.text.TextComponentString; import java.util.Arrays; import java.util.List; /** * Created by Brandon on 25/02/2015. */ public class CommandPaste implements ISubCommand { public static CommandPaste instance = new CommandPaste(); @Override public String getCommandName() { return "paste"; } @Override public void handleCommand(EntityPlayer player, String[] args) { if (args.length < 2 || args.length > 3) { player.addChatMessage(new TextComponentString("/tt-schematic paste <name> {-i} [Past the specified schematic at your coords. -i will make it ignore air]")); return; }else { if (SchematicHandler.getFile(args[1]) == null) { player.addChatMessage(new TextComponentString(args[1] + " Dose not exist")); return; }else { boolean ia = args.length == 3 && args[2].equals("-i"); try { SchematicHandler.loadAreaFromCompound(SchematicHandler.loadCompoundFromFile(args[1]), player.worldObj, (int) Math.floor(player.posX), (int) Math.floor(player.posY), (int) Math.floor(player.posZ), !ia); } catch (SchematicHandler.SchematicException e) { e.printStackTrace(); } player.addChatMessage(new TextComponentString(args[1] + " Successfully added to world")); } } } @SuppressWarnings("unchecked") @Override public List<String> addTabCompletionOptions(ICommandSender paramICommandSender, String[] args) { if (args.length == 2) { return CommandBase.getListOfStringsMatchingLastWord(args, Arrays.asList(SchematicHandler.getSchematics())); } return null; } @Override public boolean canSenderUseCommand(ICommandSender sender) { return CommandHandler.checkOpAndNotify(sender); } @Override public String[] helpInfo(EntityPlayer sender) { return new String[] { "Usage: /tt-schematic paste <name> [-i]", "", "Pasts the specified schematic at your location", "Add \"-i\" to ignore air" }; } }