Add optional per-arena exit warp.
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
name: MobArena
|
name: MobArena
|
||||||
author: garbagemule
|
author: garbagemule
|
||||||
main: com.garbagemule.MobArena.MobArena
|
main: com.garbagemule.MobArena.MobArena
|
||||||
version: 0.95.5.5
|
version: 0.95.5.8
|
||||||
softdepend: [Spout,Towny,Heroes,MagicSpells,Vault]
|
softdepend: [Spout,Towny,Heroes,MagicSpells,Vault]
|
||||||
commands:
|
commands:
|
||||||
ma:
|
ma:
|
||||||
|
|||||||
@@ -826,6 +826,7 @@ public class ArenaImpl implements Arena
|
|||||||
|
|
||||||
// If there's no player stored, create a new one!
|
// If there's no player stored, create a new one!
|
||||||
if (mp == null) {
|
if (mp == null) {
|
||||||
|
if (region.getExitWarp() != null) loc = region.getExitWarp();
|
||||||
mp = new PlayerData(p, loc);
|
mp = new PlayerData(p, loc);
|
||||||
playerData.put(p, mp);
|
playerData.put(p, mp);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,15 +9,20 @@ import com.garbagemule.MobArena.*;
|
|||||||
import com.garbagemule.MobArena.commands.*;
|
import com.garbagemule.MobArena.commands.*;
|
||||||
import com.garbagemule.MobArena.framework.ArenaMaster;
|
import com.garbagemule.MobArena.framework.ArenaMaster;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@CommandInfo(
|
@CommandInfo(
|
||||||
name = "setwarp",
|
name = "setwarp",
|
||||||
pattern = "set(warp|point)",
|
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",
|
desc = "set a warp point for an arena",
|
||||||
permission = "mobarena.setup.setwarp"
|
permission = "mobarena.setup.setwarp"
|
||||||
)
|
)
|
||||||
public class SetWarpCommand implements Command
|
public class SetWarpCommand implements Command
|
||||||
{
|
{
|
||||||
|
private static final List<String> WARPS = Arrays.asList("arena", "lobby", "spectator", "exit");
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean execute(ArenaMaster am, CommandSender sender, String... args) {
|
public boolean execute(ArenaMaster am, CommandSender sender, String... args) {
|
||||||
if (!Commands.isPlayer(sender)) {
|
if (!Commands.isPlayer(sender)) {
|
||||||
@@ -30,8 +35,11 @@ public class SetWarpCommand implements Command
|
|||||||
|
|
||||||
// Cast the sender.
|
// Cast the sender.
|
||||||
Player p = (Player) 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");
|
Messenger.tellPlayer(sender, "Usage: /ma setwarp arena|lobby|spectator");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ public class ArenaRegion
|
|||||||
private World world;
|
private World world;
|
||||||
|
|
||||||
private Location lastP1, lastP2, lastL1, lastL2;
|
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<String,Location> spawnpoints, containers;
|
private Map<String,Location> spawnpoints, containers;
|
||||||
|
|
||||||
private boolean setup, lobbySetup;
|
private boolean setup, lobbySetup;
|
||||||
@@ -77,6 +77,7 @@ public class ArenaRegion
|
|||||||
arenaWarp = coords.getLocation("arena", world);
|
arenaWarp = coords.getLocation("arena", world);
|
||||||
lobbyWarp = coords.getLocation("lobby", world);
|
lobbyWarp = coords.getLocation("lobby", world);
|
||||||
specWarp = coords.getLocation("spectator", world);
|
specWarp = coords.getLocation("spectator", world);
|
||||||
|
exitWarp = coords.getLocation("exit", world);
|
||||||
|
|
||||||
leaderboard = coords.getLocation("leaderboard", world);
|
leaderboard = coords.getLocation("leaderboard", world);
|
||||||
}
|
}
|
||||||
@@ -177,7 +178,8 @@ public class ArenaRegion
|
|||||||
public boolean isWarp(Location l) {
|
public boolean isWarp(Location l) {
|
||||||
return (l.equals(arenaWarp) ||
|
return (l.equals(arenaWarp) ||
|
||||||
l.equals(lobbyWarp) ||
|
l.equals(lobbyWarp) ||
|
||||||
l.equals(specWarp));
|
l.equals(specWarp) ||
|
||||||
|
l.equals(exitWarp));
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean contains(Location l) {
|
public boolean contains(Location l) {
|
||||||
@@ -363,6 +365,10 @@ public class ArenaRegion
|
|||||||
public Location getSpecWarp() {
|
public Location getSpecWarp() {
|
||||||
return specWarp;
|
return specWarp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Location getExitWarp() {
|
||||||
|
return exitWarp;
|
||||||
|
}
|
||||||
|
|
||||||
public Location getSpawnpoint(String name) {
|
public Location getSpawnpoint(String name) {
|
||||||
return spawnpoints.get(name);
|
return spawnpoints.get(name);
|
||||||
@@ -393,6 +399,7 @@ public class ArenaRegion
|
|||||||
case L2: setPoint(point, loc); return;
|
case L2: setPoint(point, loc); return;
|
||||||
case ARENA:
|
case ARENA:
|
||||||
case LOBBY:
|
case LOBBY:
|
||||||
|
case EXIT:
|
||||||
case SPECTATOR: setWarp(point, loc); return;
|
case SPECTATOR: setWarp(point, loc); return;
|
||||||
case LEADERBOARD: setLeaderboard(loc); return;
|
case LEADERBOARD: setLeaderboard(loc); return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ public enum RegionPoint {
|
|||||||
ARENA,
|
ARENA,
|
||||||
LOBBY,
|
LOBBY,
|
||||||
SPECTATOR,
|
SPECTATOR,
|
||||||
|
EXIT,
|
||||||
LEADERBOARD;
|
LEADERBOARD;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user