/**
  * Constructs new <tt>SM_NPC_INFO </tt> packet
  *
  * @param npc visible npc.
  * @param player
  */
 public SM_NPC_INFO(Npc npc, Player player) {
   this.npc = npc;
   npcTemplate = npc.getObjectTemplate();
   if (npcTemplate.getNpcType() == NpcType.NEUTRAL
       || npcTemplate.getNpcType() == NpcType.ARTIFACT) {
     if (player.isAggroIconTo(npc.getTribe())) npcTypeId = NpcType.NEUTRAL.getId();
     else npcTypeId = NpcType.NON_ATTACKABLE.getId();
   } else {
     npcTypeId =
         (player.isAggroIconTo(npc.getTribe())
             ? NpcType.AGGRESSIVE.getId()
             : npcTemplate.getNpcType().getId());
   }
   npcId = npc.getNpcId();
 }
 public SM_NPC_INFO(Trap trap) {
   this.npc = trap;
   npcTemplate = trap.getObjectTemplate();
   npcTypeId = npcTemplate.getNpcType().getId();
   npcId = trap.getNpcId();
   Player owner = (Player) trap.getMaster();
   if (owner != null) {
     masterObjId = owner.getObjectId();
     masterName = owner.getName();
     speed = 0;
   } else {
     masterName = "LOST";
   }
 }
 /** @param summon */
 public SM_NPC_INFO(Summon summon) {
   this.npc = summon;
   npcTemplate = summon.getObjectTemplate();
   npcTypeId = npcTemplate.getNpcType().getId();
   npcId = summon.getNpcId();
   Player owner = summon.getMaster();
   if (owner != null) {
     masterObjId = owner.getObjectId();
     masterName = owner.getName();
     speed = owner.getGameStats().getCurrentStat(StatEnum.SPEED) / 1000f;
   } else {
     masterName = "LOST";
   }
 }