From d9aad67ca5ba7b0fd2c7c5e63be7eccc12327c1f Mon Sep 17 00:00:00 2001 From: GJ Date: Mon, 18 Feb 2013 15:09:25 -0500 Subject: [PATCH] Fix splash potions not properly affecting the player that threw them. --- .../gmail/nossr50/listeners/EntityListener.java | 14 +++++++++++--- .../nossr50/skills/utilities/CombatTools.java | 12 ++++-------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/listeners/EntityListener.java b/src/main/java/com/gmail/nossr50/listeners/EntityListener.java index fb18dccf1..34a359237 100644 --- a/src/main/java/com/gmail/nossr50/listeners/EntityListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/EntityListener.java @@ -108,15 +108,23 @@ 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))) { - event.setCancelled(true); + 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; + } + } } } diff --git a/src/main/java/com/gmail/nossr50/skills/utilities/CombatTools.java b/src/main/java/com/gmail/nossr50/skills/utilities/CombatTools.java index f32788e19..c99f17cde 100644 --- a/src/main/java/com/gmail/nossr50/skills/utilities/CombatTools.java +++ b/src/main/java/com/gmail/nossr50/skills/utilities/CombatTools.java @@ -223,9 +223,7 @@ public final class CombatTools { tamingManager.gore(event); } - if (target != master) { - startGainXp(mcMMOPlayer, target, SkillType.TAMING); - } + startGainXp(mcMMOPlayer, target, SkillType.TAMING); } } @@ -322,10 +320,8 @@ public final class CombatTools { archeryManager.trackArrows(target); } - if (target != shooter) { - archeryManager.distanceXpBonus(target); - startGainXp(mcMMOPlayer, target, SkillType.ARCHERY); - } + archeryManager.distanceXpBonus(target); + startGainXp(mcMMOPlayer, target, SkillType.ARCHERY); } } @@ -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; }