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) {
Player defendingPlayer = (Player) defender;
// TODO: Is this even possible?
if (!defendingPlayer.isOnline()) {
return;
}
if (attacker instanceof Player && PartyManager.inSameParty(defendingPlayer, (Player) attacker)) {
if (!(Permissions.friendlyFire((Player) attacker) && Permissions.friendlyFire(defendingPlayer))) {
if (attacker instanceof Player) {
Player attackingPlayer = (Player) attacker;
if (defendingPlayer == attackingPlayer) {
return;
}
else if (PartyManager.inSameParty(defendingPlayer, attackingPlayer)) {
if (!(Permissions.friendlyFire(attackingPlayer) && Permissions.friendlyFire(defendingPlayer))) {
event.setCancelled(true);
return;
}
}
}
}
/* Check for invincibility */
if (defender instanceof LivingEntity) {

View File

@ -223,11 +223,9 @@ public final class CombatTools {
tamingManager.gore(event);
}
if (target != master) {
startGainXp(mcMMOPlayer, target, SkillType.TAMING);
}
}
}
break;
@ -322,12 +320,10 @@ public final class CombatTools {
archeryManager.trackArrows(target);
}
if (target != shooter) {
archeryManager.distanceXpBonus(target);
startGainXp(mcMMOPlayer, target, SkillType.ARCHERY);
}
}
}
/**
* 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)) {
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;
}