From 151666fd21a59fb3d0c8b87e201a14f05bcb9e29 Mon Sep 17 00:00:00 2001 From: alexcrea Date: Tue, 16 Jun 2026 03:09:41 +0200 Subject: [PATCH] better excellent enchant fake event [skip ci] --- .../cuanvil/util/ModernPrepareAnvilCreator.kt | 12 ------------ .../plugins/ExcellentEnchantsDependency.kt | 12 +++++------- 2 files changed, 5 insertions(+), 19 deletions(-) delete mode 100644 nms/v1_21R1/src/main/kotlin/xyz/alexcrea/cuanvil/util/ModernPrepareAnvilCreator.kt diff --git a/nms/v1_21R1/src/main/kotlin/xyz/alexcrea/cuanvil/util/ModernPrepareAnvilCreator.kt b/nms/v1_21R1/src/main/kotlin/xyz/alexcrea/cuanvil/util/ModernPrepareAnvilCreator.kt deleted file mode 100644 index 0c51e0a..0000000 --- a/nms/v1_21R1/src/main/kotlin/xyz/alexcrea/cuanvil/util/ModernPrepareAnvilCreator.kt +++ /dev/null @@ -1,12 +0,0 @@ -package xyz.alexcrea.cuanvil.util - -import org.bukkit.event.inventory.PrepareAnvilEvent -import org.bukkit.inventory.InventoryView -import org.bukkit.inventory.ItemStack -import org.bukkit.inventory.view.AnvilView - -object ModernPrepareAnvilCreator { - fun createPrepareAnvil(view: InventoryView, item: ItemStack?): PrepareAnvilEvent { - return PrepareAnvilEvent(view as AnvilView, item) - } -} diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/plugins/ExcellentEnchantsDependency.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/plugins/ExcellentEnchantsDependency.kt index c2d3019..816a4df 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/plugins/ExcellentEnchantsDependency.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/plugins/ExcellentEnchantsDependency.kt @@ -13,7 +13,7 @@ import xyz.alexcrea.cuanvil.enchant.wrapped.CAEEPreV5Enchantment import xyz.alexcrea.cuanvil.enchant.wrapped.CAEEV5Enchantment import xyz.alexcrea.cuanvil.enchant.wrapped.CAEEV5_4Enchantment import xyz.alexcrea.cuanvil.enchant.wrapped.CALegacyEEEnchantment -import xyz.alexcrea.cuanvil.util.ModernPrepareAnvilCreator +import java.lang.reflect.Constructor import java.lang.reflect.Method import su.nightexpress.excellentenchants.api.EnchantRegistry as V5EnchantRegistry import su.nightexpress.excellentenchants.enchantment.impl.universal.CurseOfFragilityEnchant as LegacyCurseOfFragilityEnchant @@ -118,6 +118,8 @@ class ExcellentEnchantsDependency { private lateinit var handleRechargeMethod: Method private lateinit var handleCombineMethod: Method + private val prepareAnvilConstructor = PrepareAnvilEvent::class.java.constructors.first() as Constructor + fun redirectListeners() { val toUnregister = ArrayList() // get required PrepareAnvilEvent listener @@ -224,12 +226,8 @@ class ExcellentEnchantsDependency { val first: ItemStack = treatInput(event.leftItem) val second: ItemStack = treatInput(event.rightItem) - val fakeEvent: PrepareAnvilEvent = try { - //TODO remove this on legacy removal - PrepareAnvilEvent(event.view, result) - } catch (_: NoSuchMethodError) { - ModernPrepareAnvilCreator.createPrepareAnvil(event.view, result) - } + val fakeEvent = prepareAnvilConstructor.newInstance(event.view, result) + handleCombineMethod.invoke(this.usedAnvilListener, fakeEvent, first, second, result) event.result = fakeEvent.result