package nl.sugcube.crystalquest.command; import nl.sugcube.crystalquest.Broadcast; import nl.sugcube.crystalquest.CrystalQuest; import nl.sugcube.crystalquest.game.Arena; import nl.sugcube.crystalquest.game.CrystalQuestTeam; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; /** * @author SugarCaney */ public class CommandTeamSpawn extends CrystalQuestCommand { public CommandTeamSpawn() { super("teamspawn", "commands.teamspawn-usage", 2); addPermissions( "crystalquest.admin" ); addAutoCompleteMeta(0, AutoCompleteArgument.ARENA); addAutoCompleteMeta(1, AutoCompleteArgument.TEAMS); addAutoCompleteMeta(2, AutoCompleteArgument.CLEAR); } @Override protected void executeImpl(CrystalQuest plugin, CommandSender sender, String... arguments) { Arena arena; try { arena = plugin.am.getArena(Integer.parseInt(arguments[0]) - 1); } catch (Exception e) { arena = plugin.am.getArena(arguments[0]); } // Check if the arenas exists. if (arena == null) { sender.sendMessage(Broadcast.get("arena.no-exist")); return; } // Clear everything if (arguments[1].equalsIgnoreCase("clear")) { for (CrystalQuestTeam team : CrystalQuestTeam.getTeams()) { arena.getTeamSpawns().remove(team); } return; } boolean canContinue = true; if (arguments.length >= 3) { try { // Clear if (arguments[2].equalsIgnoreCase("clear")) { CrystalQuestTeam team = CrystalQuestTeam.valueOfName(arguments[1]); if (arena.hasTeam(team)) { arena.getTeamSpawns().get(team).clear(); sender.sendMessage(Broadcast.TAG + Broadcast.get("commands.teamspawn-clear") .replace("%arena%", arguments[0]) .replace("%team%", arguments[1])); } else { sender.sendMessage(Broadcast.get("commands.teamspawn-team-doesnt-exist")); } } } catch (Exception e) { sender.sendMessage(Broadcast.get("commands.teamspawn-usage")); } finally { canContinue = false; } } // Add if (canContinue) { CrystalQuestTeam team = CrystalQuestTeam.valueOfName(arguments[1]); if (arena.hasTeam(team)) { arena.getTeamSpawns().get(team).add(((Player)sender).getLocation()); sender.sendMessage(Broadcast.TAG + Broadcast.get("commands.teamspawn-added") .replace("%no%", arena.getTeamSpawns().get(team).size() + "") .replace("%arena%", arguments[0]) .replace("%team%", arguments[1])); } else { sender.sendMessage(Broadcast.get("commands.teamspawn-team-doesnt-exist")); } } } @Override protected boolean assertSender(CommandSender sender) { return sender instanceof Player; } }