diff --git a/resources/plugin.yml b/resources/plugin.yml index 8bc8813..6d58da1 100644 --- a/resources/plugin.yml +++ b/resources/plugin.yml @@ -1,7 +1,7 @@ name: MobArena author: garbagemule main: com.garbagemule.MobArena.MobArena -version: 0.95.5.5 +version: 0.95.5.8 softdepend: [Spout,Towny,Heroes,MagicSpells,Vault] commands: ma: diff --git a/src/com/garbagemule/MobArena/ArenaImpl.java b/src/com/garbagemule/MobArena/ArenaImpl.java index d2ee08a..e190971 100644 --- a/src/com/garbagemule/MobArena/ArenaImpl.java +++ b/src/com/garbagemule/MobArena/ArenaImpl.java @@ -826,6 +826,7 @@ public class ArenaImpl implements Arena // If there's no player stored, create a new one! if (mp == null) { + if (region.getExitWarp() != null) loc = region.getExitWarp(); mp = new PlayerData(p, loc); playerData.put(p, mp); } diff --git a/src/com/garbagemule/MobArena/commands/setup/SetWarpCommand.java b/src/com/garbagemule/MobArena/commands/setup/SetWarpCommand.java index 368358e..9be1344 100644 --- a/src/com/garbagemule/MobArena/commands/setup/SetWarpCommand.java +++ b/src/com/garbagemule/MobArena/commands/setup/SetWarpCommand.java @@ -9,15 +9,20 @@ import com.garbagemule.MobArena.*; import com.garbagemule.MobArena.commands.*; import com.garbagemule.MobArena.framework.ArenaMaster; +import java.util.Arrays; +import java.util.List; + @CommandInfo( name = "setwarp", pattern = "set(warp|point)", - usage = "/ma setwarp arena|lobby|spectator", + usage = "/ma setwarp arena|lobby|spectator|exit", desc = "set a warp point for an arena", permission = "mobarena.setup.setwarp" ) public class SetWarpCommand implements Command { + private static final List WARPS = Arrays.asList("arena", "lobby", "spectator", "exit"); + @Override public boolean execute(ArenaMaster am, CommandSender sender, String... args) { if (!Commands.isPlayer(sender)) { @@ -30,8 +35,11 @@ public class SetWarpCommand implements Command // Cast the sender. Player p = (Player) sender; - - if (!(arg1.equals("arena") || arg1.equals("lobby") || arg1.equals("spectator"))) { + + // spec -> spectator + if (arg1.equals("spec")) arg1 = "spectator"; + + if (!WARPS.contains(arg1)) { Messenger.tellPlayer(sender, "Usage: /ma setwarp arena|lobby|spectator"); return true; } diff --git a/src/com/garbagemule/MobArena/region/ArenaRegion.java b/src/com/garbagemule/MobArena/region/ArenaRegion.java index 02616ca..4ebe89d 100644 --- a/src/com/garbagemule/MobArena/region/ArenaRegion.java +++ b/src/com/garbagemule/MobArena/region/ArenaRegion.java @@ -29,7 +29,7 @@ public class ArenaRegion private World world; private Location lastP1, lastP2, lastL1, lastL2; - private Location p1, p2, l1, l2, arenaWarp, lobbyWarp, specWarp, leaderboard; + private Location p1, p2, l1, l2, arenaWarp, lobbyWarp, specWarp, exitWarp, leaderboard; private Map spawnpoints, containers; private boolean setup, lobbySetup; @@ -77,6 +77,7 @@ public class ArenaRegion arenaWarp = coords.getLocation("arena", world); lobbyWarp = coords.getLocation("lobby", world); specWarp = coords.getLocation("spectator", world); + exitWarp = coords.getLocation("exit", world); leaderboard = coords.getLocation("leaderboard", world); } @@ -177,7 +178,8 @@ public class ArenaRegion public boolean isWarp(Location l) { return (l.equals(arenaWarp) || l.equals(lobbyWarp) || - l.equals(specWarp)); + l.equals(specWarp) || + l.equals(exitWarp)); } public boolean contains(Location l) { @@ -363,6 +365,10 @@ public class ArenaRegion public Location getSpecWarp() { return specWarp; } + + public Location getExitWarp() { + return exitWarp; + } public Location getSpawnpoint(String name) { return spawnpoints.get(name); @@ -393,6 +399,7 @@ public class ArenaRegion case L2: setPoint(point, loc); return; case ARENA: case LOBBY: + case EXIT: case SPECTATOR: setWarp(point, loc); return; case LEADERBOARD: setLeaderboard(loc); return; } diff --git a/src/com/garbagemule/MobArena/region/RegionPoint.java b/src/com/garbagemule/MobArena/region/RegionPoint.java index 2d76da5..8f7b1a3 100644 --- a/src/com/garbagemule/MobArena/region/RegionPoint.java +++ b/src/com/garbagemule/MobArena/region/RegionPoint.java @@ -8,6 +8,7 @@ public enum RegionPoint { ARENA, LOBBY, SPECTATOR, + EXIT, LEADERBOARD; @Override