From cb6f0a81042d1fe3b36601f665f1bce774d1b1ed Mon Sep 17 00:00:00 2001 From: ProSavage Date: Wed, 25 Jul 2018 15:09:55 -0500 Subject: [PATCH] Fix claiming check bug caused by Sevenja's Pull Request --- src/main/java/com/massivecraft/factions/cmd/CmdMod.java | 1 - .../factions/listeners/FactionsPlayerListener.java | 6 +++--- src/main/java/com/massivecraft/factions/zcore/MCommand.java | 1 - src/main/java/com/massivecraft/factions/zcore/MPlugin.java | 2 +- .../massivecraft/factions/zcore/persist/MemoryFPlayer.java | 6 +++++- src/main/java/com/massivecraft/factions/zcore/util/TL.java | 1 + 6 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdMod.java b/src/main/java/com/massivecraft/factions/cmd/CmdMod.java index cc119944..f3221358 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdMod.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdMod.java @@ -47,7 +47,6 @@ public class CmdMod extends FCommand { boolean permAny = Permission.MOD_ANY.has(sender, false); Faction targetFaction = you.getFaction(); - if (targetFaction != myFaction && !permAny) { msg(TL.COMMAND_MOD_NOTMEMBER, you.describeTo(fme, true)); return; diff --git a/src/main/java/com/massivecraft/factions/listeners/FactionsPlayerListener.java b/src/main/java/com/massivecraft/factions/listeners/FactionsPlayerListener.java index 37e36d86..1965d2db 100644 --- a/src/main/java/com/massivecraft/factions/listeners/FactionsPlayerListener.java +++ b/src/main/java/com/massivecraft/factions/listeners/FactionsPlayerListener.java @@ -520,7 +520,7 @@ public class FactionsPlayerListener implements Listener { FScoreboard.remove(me); } - public String parseAllPlaceholders(String string, Faction faction) { + public String parseAllPlaceholders(String string, Faction faction, Player player) { string = string.replace("{Faction}", faction.getTag()) .replace("{online}", faction.getOnlinePlayers().size() + "") .replace("{offline}", faction.getFPlayers().size() - faction.getOnlinePlayers().size() + "") @@ -677,9 +677,9 @@ public class FactionsPlayerListener implements Listener { if (P.p.getConfig().getBoolean("Title.Show-Title")) { String title = P.p.getConfig().getString("Title.Format.Title"); title = title.replace("{Faction}", factionTo.getColorTo(me) + factionTo.getTag()); - title = parseAllPlaceholders(title, factionTo); + title = parseAllPlaceholders(title, factionTo, player); String subTitle = P.p.getConfig().getString("Title.Format.Subtitle").replace("{Description}", factionTo.getDescription()).replace("{Faction}", factionTo.getColorTo(me) + factionTo.getTag()); - subTitle = parseAllPlaceholders(subTitle, factionTo); + subTitle = parseAllPlaceholders(subTitle, factionTo, player); if (!P.p.mc17) { if (!P.p.mc18) { me.getPlayer().sendTitle(P.p.color(title), P.p.color(subTitle), P.p.getConfig().getInt("Title.Options.FadeInTime"), diff --git a/src/main/java/com/massivecraft/factions/zcore/MCommand.java b/src/main/java/com/massivecraft/factions/zcore/MCommand.java index a025bbbf..309023a2 100644 --- a/src/main/java/com/massivecraft/factions/zcore/MCommand.java +++ b/src/main/java/com/massivecraft/factions/zcore/MCommand.java @@ -141,7 +141,6 @@ public abstract class MCommand { // TODO: There should be a boolean for silence public boolean validCall(CommandSender sender, List args) { return validSenderType(sender, true) && validSenderPermissions(sender, true) && validArgs(args, sender); - } public boolean isEnabled() { diff --git a/src/main/java/com/massivecraft/factions/zcore/MPlugin.java b/src/main/java/com/massivecraft/factions/zcore/MPlugin.java index 37b605f6..f143b6ec 100644 --- a/src/main/java/com/massivecraft/factions/zcore/MPlugin.java +++ b/src/main/java/com/massivecraft/factions/zcore/MPlugin.java @@ -171,7 +171,7 @@ public abstract class MPlugin extends JavaPlugin { conf.save(lang); } catch (IOException e) { getLogger().log(Level.WARNING, "Factions: Failed to save lang.yml."); - getLogger().log(Level.WARNING, "Factions: Report this stack trace to drtshock."); + getLogger().log(Level.WARNING, "Factions: Report this stack trace to prosavage."); e.printStackTrace(); } } diff --git a/src/main/java/com/massivecraft/factions/zcore/persist/MemoryFPlayer.java b/src/main/java/com/massivecraft/factions/zcore/persist/MemoryFPlayer.java index 93bab19d..a8bdbee0 100644 --- a/src/main/java/com/massivecraft/factions/zcore/persist/MemoryFPlayer.java +++ b/src/main/java/com/massivecraft/factions/zcore/persist/MemoryFPlayer.java @@ -734,7 +734,7 @@ public abstract class MemoryFPlayer implements FPlayer { return true; } else if (forFaction.isWarZone() && Permission.MANAGE_WAR_ZONE.has(getPlayer())) { return true; - } else if (forFaction.getAccess(this,PermissableAction.TERRITORY) == Access.ALLOW) { + } else if (currentFaction.getAccess(this, PermissableAction.TERRITORY) == Access.ALLOW) { return true; } else if (myFaction != forFaction) { error = P.p.txt.parse(TL.CLAIM_CANTCLAIM.toString(), forFaction.describeTo(this)); @@ -1111,14 +1111,18 @@ public abstract class MemoryFPlayer implements FPlayer { // notifyFailure is false if called by auto-claim; no need to notify on every failure for it // return value is false on failure, true on success + Faction currentFaction = Board.getInstance().getFactionAt(flocation); int ownedLand = forFaction.getLandRounded(); + if (!this.canClaimForFactionAtLocation(forFaction, flocation, notifyFailure)) { + return false; } + // if economy is enabled and they're not on the bypass list, make sure they can pay boolean mustPay = Econ.shouldBeUsed() && !this.isAdminBypassing() && !forFaction.isSafeZone() && !forFaction.isWarZone(); double cost = 0.0; diff --git a/src/main/java/com/massivecraft/factions/zcore/util/TL.java b/src/main/java/com/massivecraft/factions/zcore/util/TL.java index 522276a2..94fb7abf 100644 --- a/src/main/java/com/massivecraft/factions/zcore/util/TL.java +++ b/src/main/java/com/massivecraft/factions/zcore/util/TL.java @@ -779,6 +779,7 @@ public enum TL { CLAIM_CLICK_TO_CLAIM("Click to try to claim &2(%1$d, %2$d)"), CLAIM_MAP_OUTSIDEBORDER("&cThis claim is outside the worldborder!"), CLAIM_YOUAREHERE("You are here"), + CLAIM_NO_TERRITORY_PERM("You do not have permission from your faction leader to do this!"), /** * More generic, or less easily categorisable translations, which may apply to more than one class