From 2964bbd9981247362123d5d58fb7cb2fee8bc5d7 Mon Sep 17 00:00:00 2001 From: alexcrea Date: Sun, 6 Jul 2025 18:39:47 +0200 Subject: [PATCH] force set price if bypassed --- .../cuanvil/listener/AnvilResultListener.kt | 3 ++- .../cuanvil/listener/PrepareAnvilListener.kt | 14 +++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/listener/AnvilResultListener.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/listener/AnvilResultListener.kt index 0e9141f..64e43d1 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/listener/AnvilResultListener.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/listener/AnvilResultListener.kt @@ -46,7 +46,6 @@ class AnvilResultListener : Listener { @EventHandler(ignoreCancelled = true) fun anvilExtractionCheck(event: InventoryClickEvent) { val player = event.whoClicked as? Player ?: return - if (!player.hasPermission(CustomAnvil.affectedByPluginPermission)) return val inventory = event.inventory as? AnvilInventory ?: return if (event.rawSlot != ANVIL_OUTPUT_SLOT) { @@ -56,6 +55,8 @@ class AnvilResultListener : Listener { // Test if the event should bypass custom anvil. if (DependencyManager.tryClickAnvilResultBypass(event, inventory)) return + if (!player.hasPermission(CustomAnvil.affectedByPluginPermission)) return + val output = inventory.getItem(ANVIL_OUTPUT_SLOT) ?: return val leftItem = inventory.getItem(ANVIL_INPUT_LEFT) ?: return val rightItem = inventory.getItem(ANVIL_INPUT_RIGHT) diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/listener/PrepareAnvilListener.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/listener/PrepareAnvilListener.kt index c10359b..dd1f5b9 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/listener/PrepareAnvilListener.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/listener/PrepareAnvilListener.kt @@ -46,11 +46,15 @@ class PrepareAnvilListener : Listener { fun anvilCombineCheck(event: PrepareAnvilEvent) { // Should find player val player: HumanEntity = InventoryViewUtil.getInstance().getPlayer(event.view) + val inventory = event.inventory // Test if custom anvil is bypassed before immutability test - if (DependencyManager.earlyTryEventPreAnvilBypass(event, player)) return + if (DependencyManager.earlyTryEventPreAnvilBypass(event, player)) { + // even if we got bypassed we still want to set price + AnvilXpUtil.setAnvilInvXp(inventory, event.view, player, event.inventory.repairCost) + return + } - val inventory = event.inventory val first = inventory.getItem(ANVIL_INPUT_LEFT) ?: return val second = inventory.getItem(ANVIL_INPUT_RIGHT) @@ -62,7 +66,11 @@ class PrepareAnvilListener : Listener { } // Test if the event should bypass custom anvil. - if (DependencyManager.tryEventPreAnvilBypass(event, player)) return + if (DependencyManager.tryEventPreAnvilBypass(event, player)) { + // even if we got bypassed we still want to set price + AnvilXpUtil.setAnvilInvXp(inventory, event.view, player, event.inventory.repairCost) + return + } if (!player.hasPermission(CustomAnvil.affectedByPluginPermission)) return