diff --git a/src/com/garbagemule/MobArena/ArenaMasterImpl.java b/src/com/garbagemule/MobArena/ArenaMasterImpl.java index 1e422fa..db1b410 100644 --- a/src/com/garbagemule/MobArena/ArenaMasterImpl.java +++ b/src/com/garbagemule/MobArena/ArenaMasterImpl.java @@ -86,17 +86,6 @@ public class ArenaMasterImpl implements ArenaMaster return config.getBoolean("global-settings.update-notification", false); } - public Arena getSelectedArena() { - if (selectedArena == null && !arenas.isEmpty()) { - selectedArena = arenas.get(0); - } - return selectedArena; - } - - public void setSelectedArena(Arena arena) { - selectedArena = arena; - } - public List getArenas() { return arenas; } diff --git a/src/com/garbagemule/MobArena/MAUtils.java b/src/com/garbagemule/MobArena/MAUtils.java index e40a1b6..264593d 100644 --- a/src/com/garbagemule/MobArena/MAUtils.java +++ b/src/com/garbagemule/MobArena/MAUtils.java @@ -283,7 +283,6 @@ public class MAUtils // Create the arena node in the config-file. World world = loc.getWorld(); Arena arena = am.createArenaNode(name, world); - am.setSelectedArena(arena); // Get the hippie bounds. int x1 = (int)loc.getX() - radius; diff --git a/src/com/garbagemule/MobArena/commands/CommandHandler.java b/src/com/garbagemule/MobArena/commands/CommandHandler.java index 219c033..8c6fd98 100644 --- a/src/com/garbagemule/MobArena/commands/CommandHandler.java +++ b/src/com/garbagemule/MobArena/commands/CommandHandler.java @@ -194,27 +194,10 @@ public class CommandHandler implements CommandExecutor register(AddArenaCommand.class); register(RemoveArenaCommand.class); register(EditArenaCommand.class); - - register(ArenaCommand.class); - register(SetArenaCommand.class); - - register(SetWarpCommand.class); - register(SetRegionCommand.class); - register(SetLobbyRegionCommand.class); - register(ExpandRegionCommand.class); - register(ExpandLobbyRegionCommand.class); - register(ShowRegionCommand.class); - register(ShowLobbyRegionCommand.class); register(CheckDataCommand.class); - register(ShowSpawnsCommand.class); - register(SpawnpointsCommand.class); - register(AddSpawnpointCommand.class); register(RemoveSpawnpointCommand.class); register(CheckSpawnsCommand.class); - - register(ContainersCommand.class); - register(AddContainerCommand.class); register(RemoveContainerCommand.class); register(ListClassesCommand.class); @@ -225,7 +208,6 @@ public class CommandHandler implements CommandExecutor register(AddClassPermCommand.class); register(RemoveClassPermCommand.class); - register(ProtectCommand.class); register(RemoveLeaderboardCommand.class); register(AutoGenerateCommand.class); register(AutoDegenerateCommand.class); diff --git a/src/com/garbagemule/MobArena/commands/setup/AddArenaCommand.java b/src/com/garbagemule/MobArena/commands/setup/AddArenaCommand.java index e682730..3e649b2 100644 --- a/src/com/garbagemule/MobArena/commands/setup/AddArenaCommand.java +++ b/src/com/garbagemule/MobArena/commands/setup/AddArenaCommand.java @@ -35,10 +35,7 @@ public class AddArenaCommand implements Command Messenger.tell(sender, "An arena with that name already exists."); return true; } - - arena = am.createArenaNode(args[0], p.getWorld()); - am.setSelectedArena(arena); - + am.createArenaNode(args[0], p.getWorld()); Messenger.tell(sender, "New arena with name '" + args[0] + "' created!"); return true; } diff --git a/src/com/garbagemule/MobArena/commands/setup/AddContainerCommand.java b/src/com/garbagemule/MobArena/commands/setup/AddContainerCommand.java deleted file mode 100644 index 222a35b..0000000 --- a/src/com/garbagemule/MobArena/commands/setup/AddContainerCommand.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.garbagemule.MobArena.commands.setup; - -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; -import org.bukkit.inventory.InventoryHolder; - -import com.garbagemule.MobArena.*; -import com.garbagemule.MobArena.commands.*; -import com.garbagemule.MobArena.framework.ArenaMaster; - -@CommandInfo( - name = "addcontainer", - pattern = "add(chest|container)", - usage = "/ma addcontainer ", - desc = "add a new container for the selected arena", - permission = "mobarena.setup.containers" -) -public class AddContainerCommand implements Command -{ - @Override - public boolean execute(ArenaMaster am, CommandSender sender, String... args) { - if (!Commands.isPlayer(sender)) { - Messenger.tell(sender, Msg.MISC_NOT_FROM_CONSOLE); - return true; - } - - // Require a point name - if (args.length != 1 || args[0].matches("^[a-zA-Z][a-zA-Z0-9]*$")) return false; - - // Cast the sender. - Player p = (Player) sender; - - // Make sure we're looking at a container - if (!(p.getTargetBlock(null, 50).getState() instanceof InventoryHolder)) { - Messenger.tell(sender, "You must look at container."); - return true; - } - - am.getSelectedArena().getRegion().addChest(args[0], p.getTargetBlock(null, 50).getLocation()); - Messenger.tell(sender, "Container '" + args[0] + "' added for arena \"" + am.getSelectedArena().configName() + "\""); - return true; - } -} diff --git a/src/com/garbagemule/MobArena/commands/setup/AddSpawnpointCommand.java b/src/com/garbagemule/MobArena/commands/setup/AddSpawnpointCommand.java deleted file mode 100644 index e07f04f..0000000 --- a/src/com/garbagemule/MobArena/commands/setup/AddSpawnpointCommand.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.garbagemule.MobArena.commands.setup; - -import com.garbagemule.MobArena.framework.Arena; -import org.bukkit.World; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.garbagemule.MobArena.*; -import com.garbagemule.MobArena.commands.*; -import com.garbagemule.MobArena.framework.ArenaMaster; - -@CommandInfo( - name = "addspawn", - pattern = "addspawn(point)?", - usage = "/ma addspawn ", - desc = "add a new spawnpoint for the selected arena", - permission = "mobarena.setup.spawnpoints" -) -public class AddSpawnpointCommand implements Command -{ - @Override - public boolean execute(ArenaMaster am, CommandSender sender, String... args) { - if (!Commands.isPlayer(sender)) { - Messenger.tell(sender, Msg.MISC_NOT_FROM_CONSOLE); - return true; - } - - // Require a point name - if (args.length != 1 || args[0].matches("^[a-zA-Z][a-zA-Z0-9]*$")) return false; - - // Cast the sender. - Player p = (Player) sender; - - // Make a world check first - Arena arena = am.getSelectedArena(); - World aw = arena.getWorld(); - World pw = p.getLocation().getWorld(); - boolean changeWorld = !aw.getName().equals(pw.getName()); - - // Change worlds to make sure the region check doesn't fail - if (changeWorld) arena.setWorld(pw); - - // Make sure we're inside the region - if (!am.getSelectedArena().getRegion().contains(p.getLocation())) { - if (arena.getRegion().isDefined()) { - Messenger.tell(sender, "You must be inside the arena region!"); - } else { - Messenger.tell(sender, "You must first set the region points p1 and p2"); - } - - // Restore the world reference in the arena - if (changeWorld) arena.setWorld(aw); - } else { - // Add the spawnpoint - am.getSelectedArena().getRegion().addSpawn(args[0], p.getLocation()); - - // Notify the player if world changed - if (changeWorld) { - Messenger.tell(sender, "Changed world of arena '" + arena.configName() + - "' from '" + aw.getName() + - "' to '" + pw.getName() + "'"); - } - - // Then notify about point set - Messenger.tell(sender, "Spawnpoint '" + args[0] + "' added for arena '" + am.getSelectedArena().configName() + "'"); - arena.getRegion().checkData(am.getPlugin(), sender, false, false, false, true); - } - return true; - } -} diff --git a/src/com/garbagemule/MobArena/commands/setup/ArenaCommand.java b/src/com/garbagemule/MobArena/commands/setup/ArenaCommand.java deleted file mode 100644 index 93cdc55..0000000 --- a/src/com/garbagemule/MobArena/commands/setup/ArenaCommand.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.garbagemule.MobArena.commands.setup; - -import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; - -import com.garbagemule.MobArena.*; -import com.garbagemule.MobArena.commands.*; -import com.garbagemule.MobArena.framework.Arena; -import com.garbagemule.MobArena.framework.ArenaMaster; - -@CommandInfo( - name = "arena", - pattern = "arena", - usage = "/ma arena", - desc = "list the currently selected arena", - permission = "mobarena.setup.arena" -) -public class ArenaCommand implements Command -{ - @Override - public boolean execute(ArenaMaster am, CommandSender sender, String... args) { - Messenger.tell(sender, "Currently selected arena: " + ChatColor.GREEN + am.getSelectedArena().configName()); - - StringBuffer buffy = new StringBuffer(); - if (am.getArenas().size() > 1) { - for (Arena arena : am.getArenas()) { - if (!arena.equals(am.getSelectedArena())) { - buffy.append(arena.configName() + " "); - } - } - } - else buffy.append(Msg.MISC_NONE); - - Messenger.tell(sender, "Other arenas: " + buffy.toString()); - return true; - } -} diff --git a/src/com/garbagemule/MobArena/commands/setup/CheckDataCommand.java b/src/com/garbagemule/MobArena/commands/setup/CheckDataCommand.java index 47f2e10..4b053d9 100644 --- a/src/com/garbagemule/MobArena/commands/setup/CheckDataCommand.java +++ b/src/com/garbagemule/MobArena/commands/setup/CheckDataCommand.java @@ -10,7 +10,7 @@ import com.garbagemule.MobArena.framework.ArenaMaster; @CommandInfo( name = "checkdata", pattern = "checkdata", - usage = "/ma checkdata ()", + usage = "/ma checkdata ", desc = "check if all required points are set up", permission = "mobarena.setup.checkdata" ) @@ -18,15 +18,21 @@ public class CheckDataCommand implements Command { @Override public boolean execute(ArenaMaster am, CommandSender sender, String... args) { - // Grab the argument, if any. - String arg1 = (args.length > 0 ? args[0] : ""); - - Arena arena = arg1.equals("") ? am.getSelectedArena() : am.getArenaWithName(arg1); - if (arena == null) { - Messenger.tell(sender, Msg.ARENA_DOES_NOT_EXIST); - return true; + Arena arena; + if (args.length == 1) { + if (am.getArenas().size() > 1) { + Messenger.tell(sender, "There are multiple arenas."); + return true; + } else { + arena = am.getArenas().get(0); + } + } else { + arena = am.getArenaWithName(args[0]); + if (arena == null) { + Messenger.tell(sender, "There is no arena named " + args[0]); + return true; + } } - arena.getRegion().checkData(am.getPlugin(), sender, true, true, true, true); return true; } diff --git a/src/com/garbagemule/MobArena/commands/setup/CheckSpawnsCommand.java b/src/com/garbagemule/MobArena/commands/setup/CheckSpawnsCommand.java index 6637f1f..63860b3 100644 --- a/src/com/garbagemule/MobArena/commands/setup/CheckSpawnsCommand.java +++ b/src/com/garbagemule/MobArena/commands/setup/CheckSpawnsCommand.java @@ -13,7 +13,7 @@ import org.bukkit.entity.Player; @CommandInfo( name = "checkspawns", pattern = "checkspawn(point)?s", - usage = "/ma checkspawns ()", + usage = "/ma checkspawns ", desc = "show spawnpoints that cover your location", permission = "mobarena.setup.checkspawns" ) @@ -25,30 +25,28 @@ public class CheckSpawnsCommand implements Command Messenger.tell(sender, Msg.MISC_NOT_FROM_CONSOLE); return true; } - - // Grab the argument, if any. - String arg1 = (args.length > 0 ? args[0] : ""); - - // Cast the sender. - Player p = (Player) sender; - + Arena arena; - if (arg1.equals("")) { - arena = am.getArenaAtLocation(p.getLocation()); - if (arena == null) { - arena = am.getSelectedArena(); - } - if (arena.getRegion().getSpawnpoints().isEmpty()) { - Messenger.tell(sender, "There are no spawnpoints in the selected arena."); + if (args.length == 1) { + if (am.getArenas().size() > 1) { + Messenger.tell(sender, "There are multiple arenas."); return true; + } else { + arena = am.getArenas().get(0); } } else { - arena = am.getArenaWithName(arg1); + arena = am.getArenaWithName(args[0]); if (arena == null) { - Messenger.tell(sender, Msg.ARENA_DOES_NOT_EXIST); + Messenger.tell(sender, "There is no arena named " + args[0]); return true; } } + + if (arena.getRegion().getSpawnpoints().isEmpty()) { + Messenger.tell(sender, "There are no spawnpoints in the selected arena."); + return true; + } + Player p = (Player) sender; arena.getRegion().checkSpawns(p); return true; } diff --git a/src/com/garbagemule/MobArena/commands/setup/ContainersCommand.java b/src/com/garbagemule/MobArena/commands/setup/ContainersCommand.java deleted file mode 100644 index dfad021..0000000 --- a/src/com/garbagemule/MobArena/commands/setup/ContainersCommand.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.garbagemule.MobArena.commands.setup; - -import java.util.Set; - -import org.bukkit.command.CommandSender; - -import com.garbagemule.MobArena.*; -import com.garbagemule.MobArena.commands.*; -import com.garbagemule.MobArena.framework.ArenaMaster; - -@CommandInfo( - name = "containers", - pattern = "(containers|chests)", - usage = "/ma containers", - desc = "list containers for the selected arena", - permission = "mobarena.setup.containers" -) -public class ContainersCommand implements Command -{ - @Override - public boolean execute(ArenaMaster am, CommandSender sender, String... args) { - StringBuilder buffy = new StringBuilder(); - Set containers = am.getPlugin().getConfig().getConfigurationSection("arenas." + am.getSelectedArena().configName() + ".coords.containers").getKeys(false); - - if (containers != null) { - for (String c : containers) { - buffy.append(c); - buffy.append(" "); - } - } - else { - buffy.append(Msg.MISC_NONE); - } - - Messenger.tell(sender, "Containers for arena '" + am.getSelectedArena().configName() + "': " + buffy.toString()); - return true; - } -} diff --git a/src/com/garbagemule/MobArena/commands/setup/EditArenaCommand.java b/src/com/garbagemule/MobArena/commands/setup/EditArenaCommand.java index 96c32e4..43003d3 100644 --- a/src/com/garbagemule/MobArena/commands/setup/EditArenaCommand.java +++ b/src/com/garbagemule/MobArena/commands/setup/EditArenaCommand.java @@ -11,7 +11,7 @@ import com.garbagemule.MobArena.framework.ArenaMaster; @CommandInfo( name = "editarena", pattern = "edit(arena)?", - usage = "/ma editarena () (true|false)", + usage = "/ma editarena (true|false)", desc = "set edit mode of an arena", permission = "mobarena.setup.editarena" ) @@ -19,49 +19,36 @@ public class EditArenaCommand implements Command { @Override public boolean execute(ArenaMaster am, CommandSender sender, String... args) { - // Grab the argument, if any. - String arg1 = (args.length > 0 ? args[0] : ""); - String arg2 = (args.length > 1 ? args[1] : ""); - + boolean value; Arena arena; - - // No arguments. - if (arg1.equals("")) { - arena = am.getSelectedArena(); - arena.setEditMode(!arena.inEditMode()); - } - - // One argument. - else if (arg2.equals("")) { - // Argument is [true|false] - if (arg1.matches("true|on") || arg1.matches("false|off")) { - arena = am.getSelectedArena(); - arena.setEditMode(arg1.matches("true|on")); - } - // Argument is - else { - arena = am.getArenaWithName(arg1); - if (arena == null) { - Messenger.tell(sender, "There is no arena with that name."); - return true; - } - arena.setEditMode(!arena.inEditMode()); - } - } - - // Two arguments - else { - if (!(arg2.matches("true|on") || arg2.matches("false|off"))) { - return false; - } - arena = am.getArenaWithName(arg1); - if (arena == null) { - Messenger.tell(sender, "There is no arena with that name."); + if (args.length == 0) { + if (am.getArenas().size() > 1) { + Messenger.tell(sender, "There are multiple arenas."); return true; } - arena.setEditMode(arg2.matches("true|on")); + arena = am.getArenas().get(0); + value = !arena.inEditMode(); + } else if (args.length == 1) { + if (args[0].matches("on|off|true|false")) { + if (am.getArenas().size() > 1) { + Messenger.tell(sender, "There are multiple arenas."); + return true; + } + arena = am.getArenas().get(0); + value = args[0].matches("on|true"); + } else { + arena = am.getArenaWithName(args[0]); + if (arena == null) { + Messenger.tell(sender, "There is no arena named " + args[0]); + return true; + } + value = !arena.inEditMode(); + } + } else { + arena = am.getArenaWithName(args[0]); + value = args[1].matches("on|true"); } - + arena.setEditMode(value); Messenger.tell(sender, "Edit mode for arena '" + arena.configName() + "': " + ((arena.inEditMode()) ? ChatColor.GREEN + "true" : ChatColor.RED + "false")); if (arena.inEditMode()) Messenger.tell(sender, "Remember to turn it back off after editing!"); return true; diff --git a/src/com/garbagemule/MobArena/commands/setup/ExpandLobbyRegionCommand.java b/src/com/garbagemule/MobArena/commands/setup/ExpandLobbyRegionCommand.java deleted file mode 100644 index 0fb8112..0000000 --- a/src/com/garbagemule/MobArena/commands/setup/ExpandLobbyRegionCommand.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.garbagemule.MobArena.commands.setup; - -import org.bukkit.command.CommandSender; - -import com.garbagemule.MobArena.*; -import com.garbagemule.MobArena.commands.*; -import com.garbagemule.MobArena.framework.ArenaMaster; - -@CommandInfo( - name = "expandlobbyregion", - pattern = "expandlobby(region)?", - usage = "/ma expandlobbyregion up|down|out", - desc = "expand the arena lobby region", - permission = "mobarena.setup.expandlobbyregion" -) -public class ExpandLobbyRegionCommand implements Command -{ - @Override - public boolean execute(ArenaMaster am, CommandSender sender, String... args) { - // Require amount and direction - if (args.length != 2 || !args[0].matches("(-)?[0-9]+")) return false; - - if (!am.getSelectedArena().getRegion().isLobbyDefined()) { - Messenger.tell(sender, "You must first define l1 and l2"); - return true; - } - - if (args[1].equals("up")) { - am.getSelectedArena().getRegion().expandLobbyUp(Integer.parseInt(args[0])); - } else if (args[1].equals("down")) { - am.getSelectedArena().getRegion().expandLobbyDown(Integer.parseInt(args[0])); - } else if (args[1].equals("out")) { - am.getSelectedArena().getRegion().expandLobbyOut(Integer.parseInt(args[0])); - } else { - return false; - } - - // In case of a "negative" region, fix it! - am.getSelectedArena().getRegion().fixLobbyRegion(); - - Messenger.tell(sender, "Lobby region for '" + am.getSelectedArena().configName() + "' expanded " + args[1] + " by " + args[0] + " blocks."); - am.getSelectedArena().getRegion().save(); - return true; - } -} diff --git a/src/com/garbagemule/MobArena/commands/setup/ExpandRegionCommand.java b/src/com/garbagemule/MobArena/commands/setup/ExpandRegionCommand.java deleted file mode 100644 index c187b26..0000000 --- a/src/com/garbagemule/MobArena/commands/setup/ExpandRegionCommand.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.garbagemule.MobArena.commands.setup; - -import org.bukkit.command.CommandSender; - -import com.garbagemule.MobArena.*; -import com.garbagemule.MobArena.commands.*; -import com.garbagemule.MobArena.framework.ArenaMaster; - -@CommandInfo( - name = "expandregion", - pattern = "expand(region)?", - usage = "/ma expandregion up|down|out", - desc = "expand the arena region", - permission = "mobarena.setup.expandregion" -) -public class ExpandRegionCommand implements Command -{ - @Override - public boolean execute(ArenaMaster am, CommandSender sender, String... args) { - // Require amount and direction - if (args.length != 2 || !args[0].matches("(-)?[0-9]+")) return false; - - if (!am.getSelectedArena().getRegion().isDefined()) { - Messenger.tell(sender, "You must first define p1 and p2"); - return true; - } - - if (args[1].equals("up")) { - am.getSelectedArena().getRegion().expandUp(Integer.parseInt(args[0])); - } else if (args[1].equals("down")) { - am.getSelectedArena().getRegion().expandDown(Integer.parseInt(args[0])); - } else if (args[1].equals("out")) { - am.getSelectedArena().getRegion().expandOut(Integer.parseInt(args[0])); - } else { - return false; - } - - // In case of a "negative" region, fix it! - am.getSelectedArena().getRegion().fixRegion(); - - Messenger.tell(sender, "Region for '" + am.getSelectedArena().configName() + "' expanded " + args[1] + " by " + args[0] + " blocks."); - am.getSelectedArena().getRegion().save(); - return true; - } -} diff --git a/src/com/garbagemule/MobArena/commands/setup/ProtectCommand.java b/src/com/garbagemule/MobArena/commands/setup/ProtectCommand.java deleted file mode 100644 index 81ebf7e..0000000 --- a/src/com/garbagemule/MobArena/commands/setup/ProtectCommand.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.garbagemule.MobArena.commands.setup; - -import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; - -import com.garbagemule.MobArena.*; -import com.garbagemule.MobArena.commands.*; -import com.garbagemule.MobArena.framework.Arena; -import com.garbagemule.MobArena.framework.ArenaMaster; - -@CommandInfo( - name = "protect", - pattern = "protect", - usage = "/ma protect () (true|false)", - desc = "set the protection of an arena", - permission = "mobarena.setup.protect" -) -public class ProtectCommand implements Command -{ - @Override - public boolean execute(ArenaMaster am, CommandSender sender, String... args) { - // Grab the argument, if any. - String arg1 = (args.length > 0 ? args[0] : ""); - String arg2 = (args.length > 1 ? args[1] : ""); - - Arena arena; - - // No arguments - if (arg1.equals("")) { - arena = am.getSelectedArena(); - arena.setProtected(!arena.isProtected()); - } - - // One argument - else if (arg2.equals("")) { - // true/false - if (arg1.matches("true|on") || arg1.matches("false|off")) { - arena = am.getSelectedArena(); - arena.setProtected(arg1.matches("true|on")); - } - // Arena name - else { - arena = am.getArenaWithName(arg1); - if (arena == null) { - Messenger.tell(sender, "There is no arena with that name."); - return true; - } - arena.setProtected(!arena.isProtected()); - } - } - - // Two arguments - else { - if (!(arg2.matches("true|on") || arg2.matches("false|off"))) { - return false; - } - arena = am.getArenaWithName(arg1); - if (arena == null) { - Messenger.tell(sender, "There is no arena with that name."); - return true; - } - arena.setProtected(arg2.matches("true|on")); - } - - arena.getPlugin().saveConfig(); - Messenger.tell(sender, "Protection for arena '" + arena.configName() + "': " + ((arena.isProtected()) ? ChatColor.GREEN + "on" : ChatColor.RED + "off")); - return true; - } -} diff --git a/src/com/garbagemule/MobArena/commands/setup/RemoveArenaCommand.java b/src/com/garbagemule/MobArena/commands/setup/RemoveArenaCommand.java index 21bdb68..95f557d 100644 --- a/src/com/garbagemule/MobArena/commands/setup/RemoveArenaCommand.java +++ b/src/com/garbagemule/MobArena/commands/setup/RemoveArenaCommand.java @@ -31,13 +31,7 @@ public class RemoveArenaCommand implements Command Messenger.tell(sender, "There is no arena with that name."); return true; } - am.removeArenaNode(arena); - - if (am.getSelectedArena().equals(arena)) { - am.setSelectedArena(am.getArenas().get(0)); - } - Messenger.tell(sender, "Arena '" + arena.configName() + "' deleted."); return true; } diff --git a/src/com/garbagemule/MobArena/commands/setup/RemoveContainerCommand.java b/src/com/garbagemule/MobArena/commands/setup/RemoveContainerCommand.java index 9d429b4..d3c1246 100644 --- a/src/com/garbagemule/MobArena/commands/setup/RemoveContainerCommand.java +++ b/src/com/garbagemule/MobArena/commands/setup/RemoveContainerCommand.java @@ -1,5 +1,6 @@ package com.garbagemule.MobArena.commands.setup; +import com.garbagemule.MobArena.framework.Arena; import org.bukkit.command.CommandSender; import com.garbagemule.MobArena.*; @@ -9,7 +10,7 @@ import com.garbagemule.MobArena.framework.ArenaMaster; @CommandInfo( name = "removecontainer", pattern = "(del(.)*|r(e)?m(ove)?)(container|chest)", - usage = "/ma removecontainer ", + usage = "/ma removecontainer ", desc = "remove a container from the selected arena", permission = "mobarena.setup.containers" ) @@ -17,13 +18,30 @@ public class RemoveContainerCommand implements Command { @Override public boolean execute(ArenaMaster am, CommandSender sender, String... args) { - // Require a point name - if (args.length != 1 || !args[0].matches("^[a-zA-Z][a-zA-Z0-9]*$")) return false; + if (args.length < 1) return false; - if (am.getSelectedArena().getRegion().removeChest(args[0])) { - Messenger.tell(sender, "Container " + args[0] + " removed for arena '" + am.getSelectedArena().configName() + "'"); + Arena arena; + String chest; + if (args.length == 1) { + if (am.getArenas().size() > 1) { + Messenger.tell(sender, "There are multiple arenas."); + return true; + } + arena = am.getArenas().get(0); + chest = args[0]; } else { - Messenger.tell(sender, "Could not find the container " + args[0] + "for the arena '" + am.getSelectedArena().configName() + "'"); + arena = am.getArenaWithName(args[0]); + if (arena == null) { + Messenger.tell(sender, "There is no arena named " + args[0]); + return true; + } + chest = args[1]; + } + + if (arena.getRegion().removeChest(chest)) { + Messenger.tell(sender, "Container " + chest + " removed for arena '" + arena.configName() + "'"); + } else { + Messenger.tell(sender, "Could not find the container " + chest + " for the arena '" + arena.configName() + "'"); } return true; } diff --git a/src/com/garbagemule/MobArena/commands/setup/RemoveLeaderboardCommand.java b/src/com/garbagemule/MobArena/commands/setup/RemoveLeaderboardCommand.java index 760139f..0cde48d 100644 --- a/src/com/garbagemule/MobArena/commands/setup/RemoveLeaderboardCommand.java +++ b/src/com/garbagemule/MobArena/commands/setup/RemoveLeaderboardCommand.java @@ -1,5 +1,6 @@ package com.garbagemule.MobArena.commands.setup; +import com.garbagemule.MobArena.framework.Arena; import org.bukkit.command.CommandSender; import com.garbagemule.MobArena.Messenger; @@ -11,7 +12,7 @@ import com.garbagemule.MobArena.framework.ArenaMaster; @CommandInfo( name = "removeleaderboard", pattern = "(del(.)*|r(e)?m(ove)?)leaderboard", - usage = "/ma removeleaderboard ()", + usage = "/ma removeleaderboard ", desc = "remove the selected arena's leaderboard", permission = "mobarena.setup.leaderboards" ) @@ -19,31 +20,27 @@ public class RemoveLeaderboardCommand implements Command { @Override public boolean execute(ArenaMaster am, CommandSender sender, String... args) { - // Grab the argument, if any. - String arg1 = (args.length > 0 ? args[0] : ""); - - // If no argument, use the currently selected arena - if (arg1.equals("")) { - if (am.getSelectedArena().getRegion().getLeaderboard() != null) { - am.getSelectedArena().getRegion().set("leaderboard", null); - Messenger.tell(sender, "Leaderboard for " + am.getSelectedArena().arenaName() + " successfully removed!"); + Arena arena; + if (args.length == 0) { + if (am.getArenas().size() > 1) { + Messenger.tell(sender, "There are multiple arenas."); return true; - } else { - Messenger.tell(sender, Msg.ARENA_LBOARD_NOT_FOUND); } + arena = am.getArenas().get(0); } else { - if (am.getArenaWithName(arg1) != null) { - if (am.getSelectedArena().getRegion().getLeaderboard() != null) { - am.getArenaWithName(arg1).getRegion().set("leaderboard", null); - Messenger.tell(sender, "Leaderboard for " + am.getArenaWithName(arg1).arenaName() + " successfully removed!"); - return true; - } else { - Messenger.tell(sender, Msg.ARENA_LBOARD_NOT_FOUND); - } - } else { - Messenger.tell(sender, "No arena with that name exists."); + arena = am.getArenaWithName(args[0]); + if (arena == null) { + Messenger.tell(sender, "There is no arena named " + args[0]); + return true; } } + + if (arena.getRegion().getLeaderboard() != null) { + arena.getRegion().set("leaderboard", null); + Messenger.tell(sender, "Leaderboard for " + arena.configName() + " successfully removed!"); + } else { + Messenger.tell(sender, Msg.ARENA_LBOARD_NOT_FOUND); + } return true; } } \ No newline at end of file diff --git a/src/com/garbagemule/MobArena/commands/setup/RemoveSpawnpointCommand.java b/src/com/garbagemule/MobArena/commands/setup/RemoveSpawnpointCommand.java index 98ad73c..f671030 100644 --- a/src/com/garbagemule/MobArena/commands/setup/RemoveSpawnpointCommand.java +++ b/src/com/garbagemule/MobArena/commands/setup/RemoveSpawnpointCommand.java @@ -1,5 +1,6 @@ package com.garbagemule.MobArena.commands.setup; +import com.garbagemule.MobArena.framework.Arena; import org.bukkit.command.CommandSender; import com.garbagemule.MobArena.*; @@ -9,7 +10,7 @@ import com.garbagemule.MobArena.framework.ArenaMaster; @CommandInfo( name = "delspawn", pattern = "(del(.)*|r(e)?m(ove)?)spawn(point)?", - usage = "/ma delspawn ", + usage = "/ma delspawn ", desc = "delete a spawnpoint", permission = "mobarena.setup.spawnpoints" ) @@ -17,13 +18,30 @@ public class RemoveSpawnpointCommand implements Command { @Override public boolean execute(ArenaMaster am, CommandSender sender, String... args) { - // Require a point name - if (args.length != 1 || !args[0].matches("^[a-zA-Z][a-zA-Z0-9]*$")) return false; + if (args.length < 1) return false; - if (am.getSelectedArena().getRegion().removeSpawn(args[0])) { - Messenger.tell(sender, "Spawnpoint " + args[0] + " removed for arena '" + am.getSelectedArena().configName() + "'"); + Arena arena; + String point; + if (args.length == 1) { + if (am.getArenas().size() > 1) { + Messenger.tell(sender, "There are multiple arenas."); + return true; + } + arena = am.getArenas().get(0); + point = args[0]; } else { - Messenger.tell(sender, "Could not find the spawnpoint " + args[0] + " for the arena '" + am.getSelectedArena().configName() + "'"); + arena = am.getArenaWithName(args[0]); + if (arena == null) { + Messenger.tell(sender, "There is no arena named " + args[0]); + return true; + } + point = args[1]; + } + + if (arena.getRegion().removeSpawn(point)) { + Messenger.tell(sender, "Spawnpoint " + point + " removed for arena '" + arena.configName() + "'"); + } else { + Messenger.tell(sender, "Could not find the spawnpoint " + point + " for the arena '" + arena.configName() + "'"); } return true; } diff --git a/src/com/garbagemule/MobArena/commands/setup/SetArenaCommand.java b/src/com/garbagemule/MobArena/commands/setup/SetArenaCommand.java deleted file mode 100644 index 8a4c64e..0000000 --- a/src/com/garbagemule/MobArena/commands/setup/SetArenaCommand.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.garbagemule.MobArena.commands.setup; - -import org.bukkit.command.CommandSender; - -import com.garbagemule.MobArena.*; -import com.garbagemule.MobArena.commands.*; -import com.garbagemule.MobArena.framework.Arena; -import com.garbagemule.MobArena.framework.ArenaMaster; - -@CommandInfo( - name = "setarena", - pattern = "(set|select)arena", - usage = "/ma setarena ", - desc = "set an arena as the selected arena", - permission = "mobarena.setup.setarena" -) -public class SetArenaCommand implements Command -{ - @Override - public boolean execute(ArenaMaster am, CommandSender sender, String... args) { - // Require an arena name - if (args.length != 1) return false; - - Arena arena = am.getArenaWithName(args[0]); - if (arena != null) { - am.setSelectedArena(arena); - Messenger.tell(sender, "Currently selected arena: " + arena.configName()); - } else { - Messenger.tell(sender, Msg.ARENA_DOES_NOT_EXIST); - } - return true; - } -} diff --git a/src/com/garbagemule/MobArena/commands/setup/SetLobbyRegionCommand.java b/src/com/garbagemule/MobArena/commands/setup/SetLobbyRegionCommand.java deleted file mode 100644 index ca785f6..0000000 --- a/src/com/garbagemule/MobArena/commands/setup/SetLobbyRegionCommand.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.garbagemule.MobArena.commands.setup; - -import com.garbagemule.MobArena.framework.Arena; -import org.bukkit.World; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.garbagemule.MobArena.*; -import com.garbagemule.MobArena.commands.*; -import com.garbagemule.MobArena.framework.ArenaMaster; - -@CommandInfo( - name = "setlobbyregion", - pattern = "set(lobbyregion|l)", - usage = "/ma setlobbyregion l1|l2", - desc = "set the lobby region points of an arena", - permission = "mobarena.setup.setlobbyregion" -) -public class SetLobbyRegionCommand implements Command -{ - @Override - public boolean execute(ArenaMaster am, CommandSender sender, String... args) { - if (!Commands.isPlayer(sender)) { - Messenger.tell(sender, Msg.MISC_NOT_FROM_CONSOLE); - return true; - } - - // Require a region point - if (args.length != 1 || !args[0].matches("l1|l2")) return false; - - // Cast the sender. - Player p = (Player) sender; - - Arena arena = am.getSelectedArena(); - World aw = arena.getWorld(); - World pw = p.getLocation().getWorld(); - - if (!aw.getName().equals(pw.getName())) { - String msg = String.format("Changing world of arena '%s' from '%s' to '%s'", arena.configName(), aw.getName(), pw.getName()); - Messenger.tell(sender, msg); - } - - arena.setWorld(p.getWorld()); - arena.getRegion().set(args[0], p.getLocation()); - Messenger.tell(sender, "Lobby region point " + args[0] + " for arena '" + am.getSelectedArena().configName() + "' set."); - return true; - } -} diff --git a/src/com/garbagemule/MobArena/commands/setup/SetRegionCommand.java b/src/com/garbagemule/MobArena/commands/setup/SetRegionCommand.java deleted file mode 100644 index 062f4a6..0000000 --- a/src/com/garbagemule/MobArena/commands/setup/SetRegionCommand.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.garbagemule.MobArena.commands.setup; - -import com.garbagemule.MobArena.framework.Arena; -import org.bukkit.World; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.garbagemule.MobArena.*; -import com.garbagemule.MobArena.commands.*; -import com.garbagemule.MobArena.framework.ArenaMaster; - -@CommandInfo( - name = "setregion", - pattern = "set(region|p)", - usage = "/ma setregion p1|p2", - desc = "set the region points of an arena", - permission = "mobarena.setup.setregion" -) -public class SetRegionCommand implements Command -{ - @Override - public boolean execute(ArenaMaster am, CommandSender sender, String... args) { - if (!Commands.isPlayer(sender)) { - Messenger.tell(sender, Msg.MISC_NOT_FROM_CONSOLE); - return true; - } - - // Require a region point - if (args.length != 1 || !args[0].matches("p1|p2")) return false; - - // Cast the sender. - Player p = (Player) sender; - - Arena arena = am.getSelectedArena(); - World aw = arena.getWorld(); - World pw = p.getLocation().getWorld(); - - if (!aw.getName().equals(pw.getName())) { - String msg = String.format("Changing world of arena '%s' from '%s' to '%s'", arena.configName(), aw.getName(), pw.getName()); - Messenger.tell(sender, msg); - } - - arena.setWorld(p.getWorld()); - arena.getRegion().set(args[0], p.getLocation()); - Messenger.tell(sender, "Region point " + args[0] + " for arena '" + am.getSelectedArena().configName() + "' set."); - arena.getRegion().checkData(am.getPlugin(), sender, true, true, false, false); - return true; - } -} diff --git a/src/com/garbagemule/MobArena/commands/setup/SetWarpCommand.java b/src/com/garbagemule/MobArena/commands/setup/SetWarpCommand.java deleted file mode 100644 index 99b990b..0000000 --- a/src/com/garbagemule/MobArena/commands/setup/SetWarpCommand.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.garbagemule.MobArena.commands.setup; - -import com.garbagemule.MobArena.framework.Arena; -import org.bukkit.World; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.garbagemule.MobArena.*; -import com.garbagemule.MobArena.commands.*; -import com.garbagemule.MobArena.framework.ArenaMaster; - -@CommandInfo( - name = "setwarp", - pattern = "set(warp|point)", - usage = "/ma setwarp arena|lobby|spectator|exit", - desc = "set a warp point for an arena", - permission = "mobarena.setup.setwarp" -) -public class SetWarpCommand implements Command -{ - @Override - public boolean execute(ArenaMaster am, CommandSender sender, String... args) { - if (!Commands.isPlayer(sender)) { - Messenger.tell(sender, Msg.MISC_NOT_FROM_CONSOLE); - return true; - } - - // Require a point name - if (args.length != 1) return false; - - // Cast the sender. - Player p = (Player) sender; - - // spec -> spectator - if (args[0].equals("spec")) args[0] = "spectator"; - - // Check that the point is valid - if (!args[0].matches("arena|lobby|spectator|exit")) { - Messenger.tell(sender, "There's no warp called '" + args[0] + "'."); - return true; - } - - // Make a world check first - Arena arena = am.getSelectedArena(); - World aw = arena.getWorld(); - World pw = p.getLocation().getWorld(); - boolean changeWorld = !args[0].equals("exit") && !aw.getName().equals(pw.getName()); - - // Change worlds to make sure the region check doesn't fail - if (changeWorld) arena.setWorld(pw); - - // Make sure the arena warp is inside the region - if (args[0].equals("arena") && !arena.getRegion().contains(p.getLocation())) { - if (arena.getRegion().isDefined()) { - Messenger.tell(sender, "You must be inside the arena region!"); - } else { - Messenger.tell(sender, "You must first set the region points p1 and p2"); - } - - // Restore the world reference in the arena - if (changeWorld) arena.setWorld(aw); - } else { - // Set the region point - arena.getRegion().set(args[0], p.getLocation()); - - // Notify the player if world changed - if (changeWorld) { - String msg = String.format("Changed world of arena '%s' from '%s' to '%s'", arena.configName(), aw.getName(), pw.getName()); - Messenger.tell(sender, msg); - } - - // Then notify about point set - Messenger.tell(sender, "Warp point '" + args[0] + "' was set for arena '" + am.getSelectedArena().configName() + "'"); - arena.getRegion().checkData(am.getPlugin(), sender, true, false, true, false); - } - return true; - } -} diff --git a/src/com/garbagemule/MobArena/commands/setup/ShowLobbyRegionCommand.java b/src/com/garbagemule/MobArena/commands/setup/ShowLobbyRegionCommand.java deleted file mode 100644 index a7d69f2..0000000 --- a/src/com/garbagemule/MobArena/commands/setup/ShowLobbyRegionCommand.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.garbagemule.MobArena.commands.setup; - -import com.garbagemule.MobArena.Messenger; -import com.garbagemule.MobArena.Msg; -import com.garbagemule.MobArena.commands.Command; -import com.garbagemule.MobArena.commands.CommandInfo; -import com.garbagemule.MobArena.commands.Commands; -import com.garbagemule.MobArena.framework.Arena; -import com.garbagemule.MobArena.framework.ArenaMaster; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -@CommandInfo( - name = "showlobbyregion", - pattern = "showlobby(region)?", - usage = "/ma showlobbyregion ()", - desc = "show a lobby region", - permission = "mobarena.setup.showlobbyregion" -) -public class ShowLobbyRegionCommand implements Command -{ - @Override - public boolean execute(ArenaMaster am, CommandSender sender, String... args) { - if (!Commands.isPlayer(sender)) { - Messenger.tell(sender, Msg.MISC_NOT_FROM_CONSOLE); - return true; - } - - // Grab the argument, if any. - String arg1 = (args.length > 0 ? args[0] : ""); - - // Cast the sender. - Player p = (Player) sender; - - Arena arena; - if (arg1.equals("")) { - arena = am.getArenaAtLocation(p.getLocation()); - if (arena == null) { - arena = am.getSelectedArena(); - } - } else { - arena = am.getArenaWithName(arg1); - if (arena == null) { - Messenger.tell(sender, Msg.ARENA_DOES_NOT_EXIST); - return true; - } - } - - if (!arena.getRegion().isLobbyDefined()) { - Messenger.tell(sender, "The lobby region is not defined for the selected arena."); - return true; - } - - // Show an error message if we aren't in the right world - if (!arena.getWorld().getName().equals(arena.getWorld().getName())) { - Messenger.tell(sender, "Arena '" + arena.configName() + - "' is in world '" + arena.getWorld().getName() + - "' and you are in world '" + p.getWorld().getName() + "'"); - return true; - } - arena.getRegion().showLobbyRegion(p); - return true; - } -} diff --git a/src/com/garbagemule/MobArena/commands/setup/ShowRegionCommand.java b/src/com/garbagemule/MobArena/commands/setup/ShowRegionCommand.java deleted file mode 100644 index 7c4ffb0..0000000 --- a/src/com/garbagemule/MobArena/commands/setup/ShowRegionCommand.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.garbagemule.MobArena.commands.setup; - -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.garbagemule.MobArena.*; -import com.garbagemule.MobArena.commands.*; -import com.garbagemule.MobArena.framework.Arena; -import com.garbagemule.MobArena.framework.ArenaMaster; - -@CommandInfo( - name = "showregion", - pattern = "show(region|arena)", - usage = "/ma showregion ()", - desc = "show an arena region", - permission = "mobarena.setup.showregion" -) -public class ShowRegionCommand implements Command -{ - @Override - public boolean execute(ArenaMaster am, CommandSender sender, String... args) { - if (!Commands.isPlayer(sender)) { - Messenger.tell(sender, Msg.MISC_NOT_FROM_CONSOLE); - return true; - } - - // Grab the argument, if any. - String arg1 = (args.length > 0 ? args[0] : ""); - - // Cast the sender. - Player p = (Player) sender; - - Arena arena; - if (arg1.equals("")) { - arena = am.getArenaAtLocation(p.getLocation()); - if (arena == null) { - arena = am.getSelectedArena(); - } - } else { - arena = am.getArenaWithName(arg1); - if (arena == null) { - Messenger.tell(sender, Msg.ARENA_DOES_NOT_EXIST); - return true; - } - } - - if (!arena.getRegion().isDefined()) { - Messenger.tell(sender, "The region is not defined for the selected arena."); - return true; - } - - // Show an error message if we aren't in the right world - if (!arena.getWorld().getName().equals(arena.getWorld().getName())) { - Messenger.tell(sender, "Arena '" + arena.configName() + - "' is in world '" + arena.getWorld().getName() + - "' and you are in world '" + p.getWorld().getName() + "'"); - return true; - } - arena.getRegion().showRegion(p); - return true; - } -} diff --git a/src/com/garbagemule/MobArena/commands/setup/ShowSpawnsCommand.java b/src/com/garbagemule/MobArena/commands/setup/ShowSpawnsCommand.java deleted file mode 100644 index 0660ed0..0000000 --- a/src/com/garbagemule/MobArena/commands/setup/ShowSpawnsCommand.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.garbagemule.MobArena.commands.setup; - -import com.garbagemule.MobArena.Messenger; -import com.garbagemule.MobArena.Msg; -import com.garbagemule.MobArena.commands.Command; -import com.garbagemule.MobArena.commands.CommandInfo; -import com.garbagemule.MobArena.commands.Commands; -import com.garbagemule.MobArena.framework.Arena; -import com.garbagemule.MobArena.framework.ArenaMaster; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -@CommandInfo( - name = "showspawns", - pattern = "showspawn(point)?s", - usage = "/ma showspawns ()", - desc = "show spawnpoints of an arena", - permission = "mobarena.setup.showspawns" -) -public class ShowSpawnsCommand implements Command -{ - @Override - public boolean execute(ArenaMaster am, CommandSender sender, String... args) { - if (!Commands.isPlayer(sender)) { - Messenger.tell(sender, Msg.MISC_NOT_FROM_CONSOLE); - return true; - } - - // Grab the argument, if any. - String arg1 = (args.length > 0 ? args[0] : ""); - - // Cast the sender. - Player p = (Player) sender; - - Arena arena; - if (arg1.equals("")) { - arena = am.getArenaAtLocation(p.getLocation()); - if (arena == null) { - arena = am.getSelectedArena(); - } - - if (arena.getRegion().getSpawnpoints().isEmpty()) { - Messenger.tell(sender, "There are no spawnpoints in the selected arena."); - return true; - } - } else { - arena = am.getArenaWithName(arg1); - if (arena == null) { - Messenger.tell(sender, Msg.ARENA_DOES_NOT_EXIST); - return true; - } - } - arena.getRegion().showSpawns(p); - return true; - } -} diff --git a/src/com/garbagemule/MobArena/commands/setup/SpawnpointsCommand.java b/src/com/garbagemule/MobArena/commands/setup/SpawnpointsCommand.java deleted file mode 100644 index e58709b..0000000 --- a/src/com/garbagemule/MobArena/commands/setup/SpawnpointsCommand.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.garbagemule.MobArena.commands.setup; - -import java.util.Set; - -import org.bukkit.command.CommandSender; - -import com.garbagemule.MobArena.*; -import com.garbagemule.MobArena.commands.*; -import com.garbagemule.MobArena.framework.ArenaMaster; - -@CommandInfo( - name = "spawnpoints", - pattern = "spawn(point)?s", - usage = "/ma spawnpoints", - desc = "list spawnpoints for the selected arena", - permission = "mobarena.setup.spawnpoints" -) -public class SpawnpointsCommand implements Command -{ - @Override - public boolean execute(ArenaMaster am, CommandSender sender, String... args) { - StringBuilder buffy = new StringBuilder(); - Set spawnpoints = am.getPlugin().getConfig().getConfigurationSection("arenas." + am.getSelectedArena().configName() + ".coords.spawnpoints").getKeys(false); - - if (spawnpoints != null) { - for (String s : spawnpoints) { - buffy.append(s); - buffy.append(" "); - } - } else { - buffy.append(Msg.MISC_NONE); - } - Messenger.tell(sender, "Spawnpoints for arena '" + am.getSelectedArena().configName() + "': " + buffy.toString()); - return true; - } -} diff --git a/src/com/garbagemule/MobArena/framework/ArenaMaster.java b/src/com/garbagemule/MobArena/framework/ArenaMaster.java index 44f3a65..fef3f76 100644 --- a/src/com/garbagemule/MobArena/framework/ArenaMaster.java +++ b/src/com/garbagemule/MobArena/framework/ArenaMaster.java @@ -30,10 +30,6 @@ public interface ArenaMaster public void setEnabled(boolean value); public boolean notifyOnUpdates(); - - public Arena getSelectedArena(); - - public void setSelectedArena(Arena arena); public List getArenas();