@Override public boolean useItem(Playable playable, ItemInstance item, boolean ctrl) { Player player; if (playable.isPlayer()) player = (Player) playable; else if (playable.isPet()) player = playable.getPlayer(); else return false; GameObject target = player.getTarget(); if (target == null || !target.isMonster()) { player.sendPacket(SystemMsg.THAT_IS_AN_INCORRECT_TARGET); return false; } MonsterInstance monster = (MonsterInstance) player.getTarget(); if (!monster.isDead()) { player.sendPacket(SystemMsg.THAT_IS_AN_INCORRECT_TARGET); return false; } Skill skill = SkillTable.getInstance().getInfo(HARVESTER_SKILL_ID, 1); if (skill != null && skill.checkCondition(player, monster, false, false, true)) { player.getAI().Cast(skill, monster); return true; } return false; }