diff --git a/plugin.yml b/plugin.yml index 21b21cdd..bc78b7b3 100644 --- a/plugin.yml +++ b/plugin.yml @@ -127,7 +127,7 @@ permissions: factions.managewarzone: description: claim land as a war zone and build/destroy within war zones factions.map: - description: show territory map, set optional auto update + description: show the territory map, and set optional auto update factions.mod: description: give or revoke moderator rights factions.noboom: diff --git a/src/com/massivecraft/factions/Faction.java b/src/com/massivecraft/factions/Faction.java index 44aab108..72aa7fbf 100644 --- a/src/com/massivecraft/factions/Faction.java +++ b/src/com/massivecraft/factions/Faction.java @@ -621,14 +621,8 @@ public class Faction extends Entity implements EconomyParticipator public boolean playerHasOwnershipRights(FPlayer fplayer, FLocation loc) { - // different faction? - if (fplayer.getFactionId() != this.getId()) - { - return false; - } - // sufficient role to bypass ownership? - if (fplayer.getRole().isAtLeast(Conf.ownedAreaModeratorsBypass ? Role.MODERATOR : Role.ADMIN)) + if (fplayer.getFaction() == this && fplayer.getRole().isAtLeast(Conf.ownedAreaModeratorsBypass ? Role.MODERATOR : Role.ADMIN)) { return true; } diff --git a/src/com/massivecraft/factions/cmd/CmdOwnerList.java b/src/com/massivecraft/factions/cmd/CmdOwnerList.java index 3f8d8c75..f7c39efc 100644 --- a/src/com/massivecraft/factions/cmd/CmdOwnerList.java +++ b/src/com/massivecraft/factions/cmd/CmdOwnerList.java @@ -44,7 +44,7 @@ public class CmdOwnerList extends FCommand FLocation flocation = new FLocation(fme); - if (Board.getIdAt(flocation) != myFaction.getId()) + if (Board.getFactionAt(flocation) != myFaction) { if (!hasBypass) { diff --git a/src/com/massivecraft/factions/struct/Relation.java b/src/com/massivecraft/factions/struct/Relation.java index 929f6c13..c84989ff 100644 --- a/src/com/massivecraft/factions/struct/Relation.java +++ b/src/com/massivecraft/factions/struct/Relation.java @@ -27,7 +27,6 @@ public enum Relation return this.nicename; } - // TODO: Insane way to use enums!!!? public boolean isMember() { return this == MEMBER; @@ -61,123 +60,87 @@ public enum Relation public ChatColor getColor() { if (this == MEMBER) - { return Conf.colorMember; - } else if (this == ALLY) - { return Conf.colorAlly; - } else if (this == NEUTRAL) - { return Conf.colorNeutral; - } else - { return Conf.colorEnemy; - } } // return appropriate Conf setting for DenyBuild based on this relation and their online status public boolean confDenyBuild(boolean online) { + if (isMember()) + return false; + if (online) { if (isEnemy()) - { return Conf.territoryEnemyDenyBuild; - } else if (isAlly()) - { return Conf.territoryAllyDenyBuild; - } else - { return Conf.territoryDenyBuild; - } } else { if (isEnemy()) - { return Conf.territoryEnemyDenyBuildWhenOffline; - } else if (isAlly()) - { return Conf.territoryAllyDenyBuildWhenOffline; - } else - { return Conf.territoryDenyBuildWhenOffline; - } } } // return appropriate Conf setting for PainBuild based on this relation and their online status public boolean confPainBuild(boolean online) { + if (isMember()) + return false; + if (online) { if (isEnemy()) - { return Conf.territoryEnemyPainBuild; - } else if (isAlly()) - { return Conf.territoryAllyPainBuild; - } else - { return Conf.territoryPainBuild; - } } else { if (isEnemy()) - { return Conf.territoryEnemyPainBuildWhenOffline; - } else if (isAlly()) - { return Conf.territoryAllyPainBuildWhenOffline; - } else - { return Conf.territoryPainBuildWhenOffline; - } } } // return appropriate Conf setting for DenyUseage based on this relation public boolean confDenyUseage() { - if (isEnemy()) - { + if (isMember()) + return false; + else if (isEnemy()) return Conf.territoryEnemyDenyUseage; - } else if (isAlly()) - { return Conf.territoryAllyDenyUseage; - } else - { return Conf.territoryDenyUseage; - } } public double getRelationCost() { if (isEnemy()) - { return Conf.econCostEnemy; - } else if (isAlly()) - { return Conf.econCostAlly; - } else - { return Conf.econCostNeutral; - } } }