Fix splash potions not properly affecting the player that threw them.

This commit is contained in:
GJ 2013-02-18 15:09:25 -05:00
parent 083a89c1a3
commit d9aad67ca5
2 changed files with 15 additions and 11 deletions

View File

@ -108,17 +108,25 @@ public class EntityListener implements Listener {
if (defender instanceof Player) { if (defender instanceof Player) {
Player defendingPlayer = (Player) defender; Player defendingPlayer = (Player) defender;
// TODO: Is this even possible?
if (!defendingPlayer.isOnline()) { if (!defendingPlayer.isOnline()) {
return; return;
} }
if (attacker instanceof Player && PartyManager.inSameParty(defendingPlayer, (Player) attacker)) { if (attacker instanceof Player) {
if (!(Permissions.friendlyFire((Player) attacker) && Permissions.friendlyFire(defendingPlayer))) { Player attackingPlayer = (Player) attacker;
if (defendingPlayer == attackingPlayer) {
return;
}
else if (PartyManager.inSameParty(defendingPlayer, attackingPlayer)) {
if (!(Permissions.friendlyFire(attackingPlayer) && Permissions.friendlyFire(defendingPlayer))) {
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
} }
} }
}
/* Check for invincibility */ /* Check for invincibility */
if (defender instanceof LivingEntity) { if (defender instanceof LivingEntity) {

View File

@ -223,11 +223,9 @@ public final class CombatTools {
tamingManager.gore(event); tamingManager.gore(event);
} }
if (target != master) {
startGainXp(mcMMOPlayer, target, SkillType.TAMING); startGainXp(mcMMOPlayer, target, SkillType.TAMING);
} }
} }
}
break; break;
@ -322,12 +320,10 @@ public final class CombatTools {
archeryManager.trackArrows(target); archeryManager.trackArrows(target);
} }
if (target != shooter) {
archeryManager.distanceXpBonus(target); archeryManager.distanceXpBonus(target);
startGainXp(mcMMOPlayer, target, SkillType.ARCHERY); startGainXp(mcMMOPlayer, target, SkillType.ARCHERY);
} }
} }
}
/** /**
* Attempt to damage target for value dmg with reason CUSTOM * Attempt to damage target for value dmg with reason CUSTOM
@ -402,7 +398,7 @@ public final class CombatTools {
} }
for (Entity entity : target.getNearbyEntities(2.5, 2.5, 2.5)) { for (Entity entity : target.getNearbyEntities(2.5, 2.5, 2.5)) {
if ((entity instanceof Player && Misc.isNPCPlayer((Player) entity)) || !(entity instanceof LivingEntity) || !shouldBeAffected(attacker, entity)) { if (Misc.isNPCEntity(entity) || !(entity instanceof LivingEntity) || !shouldBeAffected(attacker, entity)) {
continue; continue;
} }