package me.maker56.survivalgames.commands.arguments; import me.maker56.survivalgames.SurvivalGames; import me.maker56.survivalgames.chat.Helper; import me.maker56.survivalgames.commands.messages.MessageHandler; import me.maker56.survivalgames.commands.permission.Permission; import me.maker56.survivalgames.commands.permission.PermissionHandler; import org.bukkit.Material; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import com.sk89q.worldedit.bukkit.WorldEditPlugin; public class ArenaArgument { private CommandSender sender; private String[] args; public ArenaArgument(CommandSender sender, String[] args) { this.sender = sender; this.args = args; } @SuppressWarnings("deprecation") public boolean execute() { if(!(sender instanceof Player)) { sender.sendMessage("�cThe arena argument can only execute as a Player!"); return true; } Player p = (Player)sender; if(!PermissionHandler.hasPermission(p, Permission.ARENA)) { p.sendMessage(MessageHandler.getMessage("no-permission")); return true; } if(args.length == 1) { Helper.showArenaHelpsite(p); return true; } else { if(args[1].equalsIgnoreCase("delete")) { SurvivalGames.arenaManager.delete(p); return true; } else if(args[1].equalsIgnoreCase("save")) { SurvivalGames.arenaManager.save(p); return true; } else if(args[1].equalsIgnoreCase("create")) { if(args.length < 4) { p.sendMessage(MessageHandler.getMessage("cmd-error").replace("%0%", "You must specify a arenaname and a gamename: /sg arena create <LOBBYNAME> <ARENA NAME>")); return true; } String arenaname = getArgs(3); String gamename = args[2]; SurvivalGames.arenaManager.createArena(p, arenaname, gamename); return true; } else if(args[1].equalsIgnoreCase("select")) { if(args.length < 4) { p.sendMessage(MessageHandler.getMessage("cmd-error").replace("%0%", "You must specify a arenaname and a gamename: /sg arena select <LOBBYNAME> <ARENA NAME>")); return true; } String arenaname = getArgs(3); String gamename = args[2]; SurvivalGames.arenaManager.selectArena(p, arenaname, gamename); return true; } else if(args[1].equalsIgnoreCase("check")) { SurvivalGames.arenaManager.check(p); return true; } else if(args[1].equalsIgnoreCase("addspawn")) { SurvivalGames.arenaManager.addSpawn(p, "Spawns"); return true; } else if(args[1].equalsIgnoreCase("removespawn")) { if(args.length == 2) { p.sendMessage(MessageHandler.getMessage("cmd-error").replace("%0%", "You must specify a number: /sg arena removespawn <ID>")); return true; } int id = 0; try { id = Integer.parseInt(args[2]); } catch(NumberFormatException e) { p.sendMessage(MessageHandler.getMessage("cmd-error").replace("%0%", args[2] + " isn't a valid number!")); return true; } SurvivalGames.arenaManager.removeSpawn(p, id, "Spawns"); return true; } else if(args[1].equalsIgnoreCase("deathmatch")) { if(args.length == 2) { SurvivalGames.arenaManager.changeDeathmatch(p); return true; } if(args[2].equalsIgnoreCase("add")) { SurvivalGames.arenaManager.addSpawn(p, "Deathmatch-Spawns"); return true; } else if(args[2].equalsIgnoreCase("remove")) { if(args.length == 3) { p.sendMessage(MessageHandler.getMessage("cmd-error").replace("%0%", "You must specify a number: /sg arena deathmatch remove <ID>")); return true; } int id = 0; try { id = Integer.parseInt(args[3]); } catch(NumberFormatException e) { p.sendMessage(MessageHandler.getMessage("cmd-error").replace("%0%", args[3] + " isn't a valid number!")); return true; } SurvivalGames.arenaManager.removeSpawn(p, id, "Deathmatch-Spawns"); return true; } else if(args[2].equalsIgnoreCase("domemiddle")) { SurvivalGames.arenaManager.setDeathmatchDomeMiddle(p, args.length > 3); return true; } else if(args[2].equalsIgnoreCase("domeradius")) { if(args.length == 3) { SurvivalGames.arenaManager.setDeathmatchDomeRadius(p, 0, true); } else { int radius = 0; try { radius = Integer.parseInt(args[3]); } catch(NumberFormatException e) { p.sendMessage(MessageHandler.getMessage("prefix") + args[3] + " isn't a valid radius!"); } SurvivalGames.arenaManager.setDeathmatchDomeRadius(p, radius, false); } } return true; } else if(args[1].equalsIgnoreCase("finish")) { SurvivalGames.arenaManager.finishSetup(p); return true; } else if(args[1].equalsIgnoreCase("tools")) { WorldEditPlugin we = SurvivalGames.getWorldEdit(); if(we == null) { ItemStack is = new ItemStack(Material.CARROT_STICK); ItemMeta im = is.getItemMeta(); im.setDisplayName("SurvivalGames Selection Tool"); is.setItemMeta(im); p.getInventory().addItem(is); p.sendMessage(MessageHandler.getMessage("arena-tools")); } else { p.getInventory().addItem(new ItemStack(we.getConfig().getInt("wand-item"))); p.sendMessage(MessageHandler.getMessage("arena-tools-worldedit")); } return true; } } p.sendMessage(MessageHandler.getMessage("prefix") + "�cCommand not found! Type /sg arena for help!"); return true; } private String getArgs(int i) { String s = ""; for(int a = i; i < args.length; a++) { try { s += args[a] + " "; } catch(ArrayIndexOutOfBoundsException e) { break; } } return s.substring(0, s.length() - 1); } }