From 346fd25955e555e53e933062dbdcccd28b057733 Mon Sep 17 00:00:00 2001 From: cmastudios Date: Sat, 7 Dec 2013 19:23:12 -0600 Subject: [PATCH] Prevent joining zone during reset --- war/src/main/java/com/tommytony/war/Warzone.java | 7 ++++--- .../main/java/com/tommytony/war/command/JoinCommand.java | 2 ++ .../java/com/tommytony/war/event/WarPlayerListener.java | 4 ++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/war/src/main/java/com/tommytony/war/Warzone.java b/war/src/main/java/com/tommytony/war/Warzone.java index f98ba78..b334106 100644 --- a/war/src/main/java/com/tommytony/war/Warzone.java +++ b/war/src/main/java/com/tommytony/war/Warzone.java @@ -1150,9 +1150,10 @@ public class Warzone { team.resetPoints(); team.setRemainingLives(team.getTeamConfig().resolveInt(TeamConfig.LIFEPOOL)); } - this.getVolume().resetBlocksAsJob(); - this.initializeZoneAsJob(); - War.war.log("Last player left warzone " + this.getName() + ". Warzone blocks resetting automatically...", Level.INFO); + if (!this.isReinitializing()) { + this.reinitialize(); + War.war.getLogger().log(Level.INFO, "Last player left warzone {0}. Warzone blocks resetting automatically...", new Object[] {this.getName()}); + } } WarPlayerLeaveEvent event1 = new WarPlayerLeaveEvent(player.getName()); diff --git a/war/src/main/java/com/tommytony/war/command/JoinCommand.java b/war/src/main/java/com/tommytony/war/command/JoinCommand.java index c8ce985..be379db 100644 --- a/war/src/main/java/com/tommytony/war/command/JoinCommand.java +++ b/war/src/main/java/com/tommytony/war/command/JoinCommand.java @@ -53,6 +53,8 @@ public class JoinCommand extends AbstractWarCommand { } if (zone.getWarzoneConfig().getBoolean(WarzoneConfig.DISABLED)) { this.badMsg("join.disabled"); + } else if (zone.isReinitializing()) { + this.badMsg("join.disabled"); } else if (zone.getWarzoneConfig().getBoolean(WarzoneConfig.AUTOASSIGN)) { this.badMsg("join.aarequired"); } else if (!zone.getWarzoneConfig().getBoolean(WarzoneConfig.JOINMIDBATTLE) && zone.isEnoughPlayers()) { diff --git a/war/src/main/java/com/tommytony/war/event/WarPlayerListener.java b/war/src/main/java/com/tommytony/war/event/WarPlayerListener.java index 6a79880..bf40979 100644 --- a/war/src/main/java/com/tommytony/war/event/WarPlayerListener.java +++ b/war/src/main/java/com/tommytony/war/event/WarPlayerListener.java @@ -335,7 +335,7 @@ public class WarPlayerListener implements Listener { if (locLobby != null && currentTeam == null && locLobby.isInAnyGate(playerLoc)) { Warzone zone = locLobby.getZone(); Team locTeamGate = locLobby.getTeamGate(playerLoc); - if (zone.getWarzoneConfig().getBoolean(WarzoneConfig.DISABLED)) { + if (zone.getWarzoneConfig().getBoolean(WarzoneConfig.DISABLED) || zone.isReinitializing()) { War.war.badMsg(player, "join.disabled"); event.setTo(zone.getTeleport()); } else if (!zone.getWarzoneConfig().getBoolean(WarzoneConfig.JOINMIDBATTLE) && zone.isEnoughPlayers()) { @@ -374,7 +374,7 @@ public class WarPlayerListener implements Listener { if (zone != null && zone.getTeleport() != null) { if (zone.getWarzoneConfig().getBoolean(WarzoneConfig.AUTOJOIN) && zone.getTeams().size() >= 1 && currentTeam == null) { - if (zone.getWarzoneConfig().getBoolean(WarzoneConfig.DISABLED)) { + if (zone.getWarzoneConfig().getBoolean(WarzoneConfig.DISABLED) || zone.isReinitializing()) { War.war.badMsg(player, "join.disabled"); event.setTo(hub.getLocation()); } else if (!zone.getWarzoneConfig().getBoolean(WarzoneConfig.JOINMIDBATTLE) && zone.isEnoughPlayers()) {