From 3037ecfae26678c974b8c020b7e3cccbf5da6951 Mon Sep 17 00:00:00 2001 From: Zoey76 <zoey_76@msn.com> Date: Sun, 17 Jan 2016 18:17:56 -0300 Subject: [PATCH] Preventing NPE on Enemy Summon target handler, fixes #295 --- .../scripts/handlers/targethandlers/EnemySummon.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/dist/game/data/scripts/handlers/targethandlers/EnemySummon.java b/dist/game/data/scripts/handlers/targethandlers/EnemySummon.java index 28e25f809a..12bade38c0 100644 --- a/dist/game/data/scripts/handlers/targethandlers/EnemySummon.java +++ b/dist/game/data/scripts/handlers/targethandlers/EnemySummon.java @@ -27,6 +27,7 @@ import com.l2jserver.gameserver.model.skills.targets.L2TargetType; import com.l2jserver.gameserver.model.zone.ZoneId; /** + * Enemy Summon target handler implementation. * @author UnAfraid */ public class EnemySummon implements ITargetTypeHandler @@ -34,10 +35,13 @@ public class EnemySummon implements ITargetTypeHandler @Override public L2Object[] getTargetList(Skill skill, L2Character activeChar, boolean onlyFirst, L2Character target) { - if (target.isSummon()) + if ((target != null) && target.isSummon()) { - L2Summon targetSummon = (L2Summon) target; - if ((activeChar.isPlayer() && (activeChar.getSummon() != targetSummon) && !targetSummon.isDead() && ((targetSummon.getOwner().getPvpFlag() != 0) || (targetSummon.getOwner().getKarma() > 0))) || (targetSummon.getOwner().isInsideZone(ZoneId.PVP) && activeChar.getActingPlayer().isInsideZone(ZoneId.PVP)) || (targetSummon.getOwner().isInDuel() && activeChar.getActingPlayer().isInDuel() && (targetSummon.getOwner().getDuelId() == activeChar.getActingPlayer().getDuelId()))) + final L2Summon targetSummon = (L2Summon) target; + if ((activeChar.isPlayer() && (activeChar.getSummon() != targetSummon) && // + !targetSummon.isDead() && ((targetSummon.getOwner().getPvpFlag() != 0) || (targetSummon.getOwner().getKarma() > 0))) || // + (targetSummon.getOwner().isInsideZone(ZoneId.PVP) && activeChar.getActingPlayer().isInsideZone(ZoneId.PVP)) || // + (targetSummon.getOwner().isInDuel() && activeChar.getActingPlayer().isInDuel() && (targetSummon.getOwner().getDuelId() == activeChar.getActingPlayer().getDuelId()))) { return new L2Character[] { -- GitLab