19 override fun handle(player: Player) {
20 val used = player.inventory[slot] ?: return
21 if (!used.matchesId(itemId)) return
23 val npc = World.getNpcBySlot(index).getOrNull() ?: return
24 if (!npc.isValid) return
26 val position = npc.position
27 val region = World.getRegions().getRegion(position)
28 if (!region.containsNpc(position.height, npc)) return
32 if (!PluginManager.getDataBus().publish(player, ItemOnNpcEvent(npc, used, slot))) {
33 player.send(SendMessage("Nothing interesting happens."))