super(handler, sender, args);
}
@Override
public boolean handle() {
Warzone zone;
if (this.args.length == 1) {
zone = Warzone.getZoneByName(this.args[0]);
} else if (this.args.length == 0) {
if (!(this.getSender() instanceof Player)) {
return false;
}
zone = Warzone.getZoneByLocation((Player) this.getSender());
if (zone == null) {
ZoneLobby lobby = ZoneLobby.getLobbyByLocation((Player) this.getSender());
if (lobby == null) {
return false;
}
zone = lobby.getZone();
}
} else {
return false;
}
if (zone == null) {
return false;
} else if (!this.isSenderAuthorOfZone(zone)) {
return true;
}
zone.clearThieves();
for (Team team : zone.getTeams()) {
team.teamcast("The war has ended. " + zone.getTeamInformation() + " Resetting warzone " + zone.getName() + " and teams...");
for (Iterator<Player> it = team.getPlayers().iterator(); it.hasNext();) {
Player p = it.next();
it.remove();
team.removePlayer(p);
if (!zone.getReallyDeadFighters().contains(p.getName())) {
p.teleport(zone.getEndTeleport(LeaveCause.RESET));
}
}
team.resetPoints();
team.getPlayers().clear();
}
this.msg("Reloading warzone " + zone.getName() + ".");
PartialZoneResetJob.setSenderToNotify(zone, this.getSender());
zone.reinitialize();
War.war.log(this.getSender().getName() + " reset warzone " + zone.getName(), Level.INFO);
return true;
}