From 685157543b15ced1eaed8add21c8ec6eb080cc8f Mon Sep 17 00:00:00 2001 From: Bishop Date: Sun, 8 Feb 2026 12:46:45 +0000 Subject: [PATCH] Leprechauns now properly explain why they can't note your items --- .../global/skill/farming/LeprechaunNoter.kt | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/Server/src/main/content/global/skill/farming/LeprechaunNoter.kt b/Server/src/main/content/global/skill/farming/LeprechaunNoter.kt index 3a3d47bbf..8cf6eff81 100644 --- a/Server/src/main/content/global/skill/farming/LeprechaunNoter.kt +++ b/Server/src/main/content/global/skill/farming/LeprechaunNoter.kt @@ -12,26 +12,29 @@ class LeprechaunNoter : InteractionListener { val LEPRECHAUNS = intArrayOf(NPCs.TOOL_LEPRECHAUN_3021,NPCs.GOTH_LEPRECHAUN_8000,NPCs.TOOL_LEPRECHAUN_4965,NPCs.TECLYN_2861) override fun defineListeners() { - onUseWith(IntType.NPC,CROPS,*LEPRECHAUNS){ player, used, with -> + onUseAnyWith(IntType.NPC,*LEPRECHAUNS) { player, used, with -> val usedItem = used.asItem() val npc = with.asNpc() val expr = when(npc.id){ - 3021 -> core.game.dialogue.FacialExpression.OLD_NORMAL + NPCs.TOOL_LEPRECHAUN_3021 -> core.game.dialogue.FacialExpression.OLD_NORMAL else -> core.game.dialogue.FacialExpression.FRIENDLY } - - if(usedItem.noteChange != usedItem.id){ - val amt = player.inventory.getAmount(usedItem.id) - if(player.inventory.remove(Item(usedItem.id,amt))){ - player.inventory.add(Item(usedItem.noteChange,amt)) + when { + (!usedItem.definition.isUnnoted) -> { // If the item is a banknote + player.dialogueInterpreter.sendDialogues(npc.id,expr,"That IS a banknote!") + } + (usedItem.id !in CROPS || usedItem.definition.noteId < 0) -> { // If the item is not a crop or cannot be noted + player.dialogueInterpreter.sendDialogues(npc.id,expr,"Nay, I can't turn that into a banknote.") + } + else -> { // Note the item + val amt = amountInInventory(player, usedItem.id) + if (removeItem(player, Item(usedItem.id, amt))) { + addItem(player, usedItem.noteChange, amt) + } + sendItemDialogue(player, usedItem.id, "The leprechaun exchanges your items for banknotes.") } - sendItemDialogue(player,usedItem.id,"The leprechaun exchanges your items for banknotes.") - } else { - // Unsure why the line below no longer functions, despite only changing the line above to be more correct. Using your note(NOT CROP) on the leprechaun no longer functions because of this. - Crash - player.dialogueInterpreter.sendDialogues(npc.id,expr,"That IS a banknote!") } - - return@onUseWith true + return@onUseAnyWith true } } } \ No newline at end of file