diff --git a/war/src/main/java/bukkit/tommytony/war/War.java b/war/src/main/java/bukkit/tommytony/war/War.java index 769c483..a9a2062 100644 --- a/war/src/main/java/bukkit/tommytony/war/War.java +++ b/war/src/main/java/bukkit/tommytony/war/War.java @@ -399,6 +399,54 @@ public class War extends JavaPlugin { return false; } } + + public String printConfig(Warzone zone) { + return "Warzone " + zone.getName() + " config - " + + "lifepool:" + zone.getLifePool() + " " + + "teamsize:" + zone.getTeamCap() + " " + + "maxscore:" + zone.getScoreCap() + " " + + "ff:" + onOffStr(zone.getFriendlyFire()) + + "autoassign:" + onOffStr(zone.getAutoAssignOnly()) + + "blockheads:" + onOffStr(zone.isBlockHeads()) + + "spawnstyle:" + zone.getSpawnStyle() + " " + + "monumentheal:" + zone.getMonumentHeal() + " " + + "unbreakable:" + onOffStr(zone.isUnbreakableZoneBlocks()) + + "disabled:" + onOffStr(zone.isDisabled()) + + "nocreatures:" + onOffStr(zone.isNoCreatures()) + + "resetonempty:" + onOffStr(zone.isResetOnEmpty()) + + "resetonload:" + onOffStr(zone.isResetOnLoad()) + + "resetonunload:" + onOffStr(zone.isResetOnUnload()); + } + + public String printConfig() { + return "War config - " + + "pvpinzonesonly:" + onOffStr(War.war.isPvpInZonesOnly()) + + "disablepvpmessage:" + onOffStr(War.war.isDisablePvpMessage()) + + "buildinzonesonly:" + onOffStr(War.war.isBuildInZonesOnly()) + + "- Warzone defaults - " + + "lifepool:" + War.war.getDefaultLifepool() + " " + + "teamsize:" + War.war.getDefaultTeamCap() + " " + + "maxscore:" + War.war.getDefaultScoreCap() + " " + + "ff:" + onOffStr(War.war.isDefaultFriendlyFire()) + + "autoassign:" + onOffStr(War.war.isDefaultAutoAssignOnly()) + + "blockheads:" + onOffStr(War.war.isDefaultBlockHeads()) + + "spawnstyle:" + War.war.getDefaultSpawnStyle() + " " + + "monumentheal:" + War.war.getDefaultMonumentHeal() + " " + + "unbreakable:" + onOffStr(War.war.isDefaultUnbreakableZoneBlocks()) + + "nocreatures:" + onOffStr(War.war.isDefaultNoCreatures()) + + "resetonempty:" + onOffStr(War.war.isDefaultResetOnEmpty()) + + "resetonload:" + onOffStr(War.war.isDefaultResetOnLoad()) + + "resetonunload:" + onOffStr(War.war.isDefaultResetOnUnload()); + } + + private String onOffStr(boolean makeThisAString) { + if(makeThisAString) { + return "on "; + } else { + return "off "; + } + + } private void setZoneRallyPoint(String warzoneName, Player player) { Warzone zone = this.findWarzone(warzoneName); @@ -534,11 +582,13 @@ public class War extends JavaPlugin { public boolean canPvpOutsideZones(Player player) { if (this.isPvpInZonesOnly()) { if (War.permissionHandler != null && (War.permissionHandler.has(player, "war.pvp") || War.permissionHandler.has(player, "War.pvp"))) { + War.war.log(player.getName() + " can pvp. Has war.pvp.", Level.INFO); return true; } // w/o Permissions, if pvpInZoneOnly, no one can pvp outside the zone return false; } else { + War.war.log(player.getName() + " can pvp. Not pvpinzonesonly.", Level.INFO); return true; } } diff --git a/war/src/main/java/bukkit/tommytony/war/WarEntityListener.java b/war/src/main/java/bukkit/tommytony/war/WarEntityListener.java index bfef39f..c84458a 100644 --- a/war/src/main/java/bukkit/tommytony/war/WarEntityListener.java +++ b/war/src/main/java/bukkit/tommytony/war/WarEntityListener.java @@ -86,10 +86,12 @@ public class WarEntityListener extends EntityListener { } } else if (attackerTeam == null && defenderTeam == null && War.war.canPvpOutsideZones(a)) { // let normal PVP through is its not turned off or if you have perms + War.war.log("Allowed " + a.getDisplayName() + " to hit " + d.getDisplayName() + " ouside zone.", Level.INFO); } else if (attackerTeam == null && defenderTeam == null && !War.war.canPvpOutsideZones(a)) { if (!War.war.isDisablePvpMessage()) { War.war.badMsg(a, "You need the 'war.pvp' permission to attack players outside warzones."); } + War.war.log("Prevented " + a.getDisplayName() + " from hitting " + d.getDisplayName() + " ouside zone.", Level.INFO); event.setCancelled(true); // global pvp is off } else { War.war.badMsg(a, "Your attack missed!"); @@ -104,6 +106,7 @@ public class WarEntityListener extends EntityListener { } else if (attackerWarzone != defenderWarzone) { War.war.badMsg(a, "Your target is playing in another warzone."); } + War.war.log("Prevented " + a.getDisplayName() + " from hitting " + d.getDisplayName() + " somehow.", Level.INFO); event.setCancelled(true); // can't attack someone inside a warzone if you're not in a team } } else if (defender instanceof Player) { diff --git a/war/src/main/java/bukkit/tommytony/war/command/AbstractWarCommand.java b/war/src/main/java/bukkit/tommytony/war/command/AbstractWarCommand.java index 59cfee0..0466cb5 100644 --- a/war/src/main/java/bukkit/tommytony/war/command/AbstractWarCommand.java +++ b/war/src/main/java/bukkit/tommytony/war/command/AbstractWarCommand.java @@ -1,8 +1,6 @@ package bukkit.tommytony.war.command; import org.bukkit.command.CommandSender; -import org.bukkit.command.ConsoleCommandSender; -import org.bukkit.entity.Player; import bukkit.tommytony.war.War; import bukkit.tommytony.war.WarCommandHandler; diff --git a/war/src/main/java/bukkit/tommytony/war/command/SaveZoneCommand.java b/war/src/main/java/bukkit/tommytony/war/command/SaveZoneCommand.java index 6ba5ab4..f4232aa 100644 --- a/war/src/main/java/bukkit/tommytony/war/command/SaveZoneCommand.java +++ b/war/src/main/java/bukkit/tommytony/war/command/SaveZoneCommand.java @@ -3,14 +3,13 @@ package bukkit.tommytony.war.command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import com.tommytony.war.Warzone; -import com.tommytony.war.ZoneLobby; -import com.tommytony.war.mappers.WarMapper; -import com.tommytony.war.mappers.WarzoneMapper; - import bukkit.tommytony.war.War; import bukkit.tommytony.war.WarCommandHandler; +import com.tommytony.war.Warzone; +import com.tommytony.war.ZoneLobby; +import com.tommytony.war.mappers.WarzoneMapper; + public class SaveZoneCommand extends AbstractZoneMakerCommand { public SaveZoneCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NotZoneMakerException { diff --git a/war/src/main/java/bukkit/tommytony/war/command/SetWarConfigCommand.java b/war/src/main/java/bukkit/tommytony/war/command/SetWarConfigCommand.java index 1c14600..ffc0848 100644 --- a/war/src/main/java/bukkit/tommytony/war/command/SetWarConfigCommand.java +++ b/war/src/main/java/bukkit/tommytony/war/command/SetWarConfigCommand.java @@ -1,13 +1,12 @@ package bukkit.tommytony.war.command; import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -import com.tommytony.war.mappers.WarMapper; import bukkit.tommytony.war.War; import bukkit.tommytony.war.WarCommandHandler; +import com.tommytony.war.mappers.WarMapper; + public class SetWarConfigCommand extends AbstractZoneMakerCommand { public SetWarConfigCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NotZoneMakerException { @@ -16,13 +15,25 @@ public class SetWarConfigCommand extends AbstractZoneMakerCommand { @Override public boolean handle() { + boolean wantsToPrint = false; if (this.args.length == 0) { return false; + } else if (this.args.length == 1 && (this.args[0].equals("-p") || this.args[0].equals("print"))) { + String config = War.war.printConfig(); + this.msg(config); + return true; + } else if (this.args.length > 1 && (this.args[0].equals("-p") || this.args[0].equals("print"))) { + wantsToPrint = true; } if (War.war.updateFromNamedParams(this.getSender(), this.args)) { WarMapper.save(); - this.msg("War config saved."); + if (wantsToPrint) { + String config = War.war.printConfig(); + this.msg("War config saved. " + config); + } else { + this.msg("War config saved."); + } } else { this.msg("Failed to read named parameters."); } diff --git a/war/src/main/java/bukkit/tommytony/war/command/SetZoneConfigCommand.java b/war/src/main/java/bukkit/tommytony/war/command/SetZoneConfigCommand.java index 523698a..ee8ce06 100644 --- a/war/src/main/java/bukkit/tommytony/war/command/SetZoneConfigCommand.java +++ b/war/src/main/java/bukkit/tommytony/war/command/SetZoneConfigCommand.java @@ -3,14 +3,13 @@ package bukkit.tommytony.war.command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import com.tommytony.war.Warzone; -import com.tommytony.war.ZoneLobby; -import com.tommytony.war.mappers.WarMapper; -import com.tommytony.war.mappers.WarzoneMapper; - import bukkit.tommytony.war.War; import bukkit.tommytony.war.WarCommandHandler; +import com.tommytony.war.Warzone; +import com.tommytony.war.ZoneLobby; +import com.tommytony.war.mappers.WarzoneMapper; + public class SetZoneConfigCommand extends AbstractZoneMakerCommand { public SetZoneConfigCommand(WarCommandHandler handler, CommandSender sender, String[] args) throws NotZoneMakerException { @@ -23,16 +22,19 @@ public class SetZoneConfigCommand extends AbstractZoneMakerCommand { Player player = null; CommandSender commandSender = this.getSender(); boolean isFirstParamWarzone = false; + boolean wantsToPrint = false; if (this.args.length == 0) { return false; } else { - if(!this.args[0].contains(":")) { + if (!this.args[0].contains(":")) { // warzone name maybe in first place Warzone zoneByName = Warzone.getZoneByName(this.args[0]); if (zoneByName != null) { zone = zoneByName; isFirstParamWarzone = true; + } else if (this.args[0].equals("-p") || this.args[0].equals("print")){ + wantsToPrint = true; } } @@ -67,6 +69,23 @@ public class SetZoneConfigCommand extends AbstractZoneMakerCommand { this.args = newargs; } + // args have been shifted if needed + if(this.args.length > 0 && (this.args[0].equals("-p") || this.args[0].equals("print"))) { + // only printing + if(this.args.length == 1) { + this.msg(War.war.printConfig(zone)); + return true; + } else { + // first param was to print, shift again + String[] newargs = new String[this.args.length - 1]; + for (int i = 1; i < this.args.length; i++) { + newargs[i-1] = args[i]; + } + this.args = newargs; + } + wantsToPrint = true; + } + // We have a warzone and indexed-from-0 arguments, let's update if (War.war.updateZoneFromNamedParams(zone, player, this.args)) { this.msg("Saving config and resetting warzone " + zone.getName() + "."); @@ -76,7 +95,12 @@ public class SetZoneConfigCommand extends AbstractZoneMakerCommand { zone.getLobby().getVolume().resetBlocks(); } zone.initializeZone(); // bring back team spawns etc - this.msg("Warzone config saved. Zone reset."); + + if (wantsToPrint) { + this.msg("Warzone config saved. Zone reset. " + War.war.printConfig(zone)); + } else { + this.msg("Warzone config saved. Zone reset."); + } if (War.war.getWarHub() != null) { // maybe the zone was disabled/enabled War.war.getWarHub().getVolume().resetBlocks(); diff --git a/war/src/main/java/com/tommytony/war/Warzone.java b/war/src/main/java/com/tommytony/war/Warzone.java index 3c89ec4..06aee25 100644 --- a/war/src/main/java/com/tommytony/war/Warzone.java +++ b/war/src/main/java/com/tommytony/war/Warzone.java @@ -940,12 +940,6 @@ public class Warzone { } } - public String printConfig() { - String cfg = "Warzone " + this.getName() + " config: "; - - return null; - } - public void setBlockHeads(boolean blockHeads) { this.blockHeads = blockHeads; }