diff --git a/war/src/main/java/bukkit/tommytony/war/War.java b/war/src/main/java/bukkit/tommytony/war/War.java index 001a8e7..ace1453 100644 --- a/war/src/main/java/bukkit/tommytony/war/War.java +++ b/war/src/main/java/bukkit/tommytony/war/War.java @@ -816,15 +816,6 @@ public class War extends JavaPlugin { } } - public void performLeave(Player player) { - if (!this.inAnyWarzone(player.getLocation()) || this.getPlayerTeam(player.getName()) == null) { - this.badMsg(player, "Usage: /leave. " + "Must be in a team already."); - } else { - Warzone zone = this.getPlayerTeamWarzone(player.getName()); - zone.handlePlayerLeave(player, zone.getTeleport(), true); - } - } - private boolean updateZoneFromNamedParams(Warzone warzone, Player player, String[] arguments) { try { Map namedParams = new HashMap(); diff --git a/war/src/main/java/bukkit/tommytony/war/WarCommandHandler.java b/war/src/main/java/bukkit/tommytony/war/WarCommandHandler.java index 0cad49d..85c959a 100644 --- a/war/src/main/java/bukkit/tommytony/war/WarCommandHandler.java +++ b/war/src/main/java/bukkit/tommytony/war/WarCommandHandler.java @@ -42,6 +42,9 @@ public class WarCommandHandler { else if (command.equals("join")) { commandObj = new JoinCommand(this, sender, arguments); } + else if (command.equals("leave")) { + commandObj = new LeaveCommand(this, sender, arguments); + } else { // we are not responsible for this command return true; diff --git a/war/src/main/java/bukkit/tommytony/war/command/LeaveCommand.java b/war/src/main/java/bukkit/tommytony/war/command/LeaveCommand.java new file mode 100644 index 0000000..6c03a03 --- /dev/null +++ b/war/src/main/java/bukkit/tommytony/war/command/LeaveCommand.java @@ -0,0 +1,28 @@ +package bukkit.tommytony.war.command; + +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import bukkit.tommytony.war.War; +import bukkit.tommytony.war.WarCommandHandler; + +import com.tommytony.war.Warzone; + +public class LeaveCommand extends AbstractWarzoneCommand { + public LeaveCommand(WarCommandHandler handler, CommandSender sender, String[] args) { + super(handler, sender, args); + } + + public boolean handle() { + if (!(this.sender instanceof Player)) return true; + + Player player = (Player) this.sender; + if (!War.war.inAnyWarzone(player.getLocation()) || War.war.getPlayerTeam(player.getName()) == null) { + return false; + } + + Warzone zone = War.war.getPlayerTeamWarzone(player.getName()); + zone.handlePlayerLeave(player, zone.getTeleport(), true); + return true; + } +}