Add Friendly Fire permission for parties

This removes the friendly fire config option previously created
Both attacker and defender must have this option

Closes #648
This commit is contained in:
NuclearW
2013-02-07 18:46:41 -05:00
parent 366940fc14
commit af1288b6f8
7 changed files with 36 additions and 10 deletions

View File

@ -588,7 +588,7 @@ public final class CombatTools {
return false;
}
if (PartyManager.inSameParty(player, defender) && !Config.getInstance().getPartyFriendlyFire()) {
if (PartyManager.inSameParty(player, defender) && !(Permissions.friendlyFire(player) && Permissions.friendlyFire(defender))) {
return false;
}
@ -601,8 +601,13 @@ public final class CombatTools {
}
}
else if (entity instanceof Tameable) {
if (Misc.isFriendlyPet(player, (Tameable) entity) && !Config.getInstance().getPartyFriendlyFire()) {
return false;
if (Misc.isFriendlyPet(player, (Tameable) entity)) {
// isFriendlyPet ensures that the Tameable is: Tamed, owned by a player, and the owner is in the same party
// So we can make some assumptions here, about our casting and our check
Player owner = (Player) ((Tameable) entity).getOwner();
if (!(Permissions.friendlyFire(player) && Permissions.friendlyFire(owner))) {
return false;
}
}
}