TargetPartyMember.java 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /**
  2. *
  3. */
  4. package handlers.targethandlers;
  5. import com.l2jserver.gameserver.handler.ISkillTargetTypeHandler;
  6. import com.l2jserver.gameserver.model.L2Object;
  7. import com.l2jserver.gameserver.model.L2Skill;
  8. import com.l2jserver.gameserver.model.L2Skill.SkillTargetType;
  9. import com.l2jserver.gameserver.model.actor.L2Character;
  10. import com.l2jserver.gameserver.model.actor.L2Summon;
  11. import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
  12. import com.l2jserver.gameserver.network.SystemMessageId;
  13. import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
  14. /**
  15. * @author UnAfraid
  16. *
  17. */
  18. public class TargetPartyMember implements ISkillTargetTypeHandler
  19. {
  20. @Override
  21. public L2Object[] getTargetList(L2Skill skill, L2Character activeChar, boolean onlyFirst, L2Character target)
  22. {
  23. if ((target != null
  24. && target == activeChar)
  25. || (target != null
  26. && activeChar.isInParty()
  27. && target.isInParty()
  28. && activeChar.getParty().getPartyLeaderOID() == target.getParty().getPartyLeaderOID())
  29. || (target != null
  30. && activeChar instanceof L2PcInstance
  31. && target instanceof L2Summon
  32. && activeChar.getPet() == target)
  33. || (target != null
  34. && activeChar instanceof L2Summon
  35. && target instanceof L2PcInstance
  36. && activeChar == target.getPet()))
  37. {
  38. if (!target.isDead())
  39. {
  40. // If a target is found, return it in a table else send a system message TARGET_IS_INCORRECT
  41. return new L2Character[] { target };
  42. }
  43. else
  44. return _emptyTargetList;
  45. }
  46. else
  47. {
  48. activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.TARGET_IS_INCORRECT));
  49. return _emptyTargetList;
  50. }
  51. }
  52. @Override
  53. public Enum<SkillTargetType> getTargetType()
  54. {
  55. return SkillTargetType.TARGET_PARTY_MEMBER;
  56. }
  57. }