diff --git a/README.md b/README.md index 5fbc469..ecaf939 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ Officially supported but still experimental. use ExcellentEnchants item type. Here is a list of supported anvil mechanic plugins with support status: - [Disenchantment](https://www.spigotmc.org/resources/disenchantment-1-21-1-1-20-6-new-book-splitting-mechanics.110741/) -Officially supported by Custom Anvil but still experimental. Mostly use Custom Anvil basic XP settings. (version >= 6.1.0) +Officially supported by Custom Anvil but still experimental. Mostly use Custom Anvil basic XP settings. (version >= 6.1.5) - [HavenBags](https://www.spigotmc.org/resources/havenbags-shulker-like-player-bound-bags-1-17-1-21-4.110420/) Officially supported by Custom Anvil. Not really enchantment related but CustomAnvil should not impact bag upgrade and skin via anvil. (version >= 1.31.0) diff --git a/build.gradle.kts b/build.gradle.kts index 84a35ce..a5d4970 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -16,7 +16,7 @@ plugins { } group = "xyz.alexcrea" -version = "1.8.3" +version = "1.9.0" repositories { // EcoEnchants @@ -47,7 +47,7 @@ dependencies { compileOnly(files("libs/ExcellentEnchants 4.1.0-striped.jar")) // For legacy excellent enchants // Disenchantment - compileOnly(files("libs/Disenchantment-6.1.0.jar")) + compileOnly(files("libs/Disenchantment-6.1.5.jar")) // HavenBags compileOnly(files("libs/HavenBags-1.31.0.1760.jar")) diff --git a/libs/Disenchantment-6.1.0.jar b/libs/Disenchantment-6.1.0.jar deleted file mode 100644 index 83a9069..0000000 Binary files a/libs/Disenchantment-6.1.0.jar and /dev/null differ diff --git a/libs/Disenchantment-6.1.5.jar b/libs/Disenchantment-6.1.5.jar new file mode 100644 index 0000000..a574f38 Binary files /dev/null and b/libs/Disenchantment-6.1.5.jar differ diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DisenchantmentDependency.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DisenchantmentDependency.kt index e8c8e15..917c268 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DisenchantmentDependency.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DisenchantmentDependency.kt @@ -1,5 +1,6 @@ package xyz.alexcrea.cuanvil.dependency +import com.jankominek.disenchantment.Disenchantment import com.jankominek.disenchantment.events.DisenchantClickEvent import com.jankominek.disenchantment.events.DisenchantEvent import com.jankominek.disenchantment.events.ShatterClickEvent @@ -10,7 +11,6 @@ import org.bukkit.event.inventory.InventoryClickEvent import org.bukkit.event.inventory.PrepareAnvilEvent import org.bukkit.inventory.AnvilInventory import org.bukkit.inventory.ItemStack -import org.bukkit.plugin.RegisteredListener import xyz.alexcrea.cuanvil.listener.PrepareAnvilListener import xyz.alexcrea.cuanvil.util.AnvilXpUtil @@ -20,55 +20,9 @@ class DisenchantmentDependency { CustomAnvil.instance.logger.info("Disenchantment Detected !") } - private lateinit var splitEvent: ShatterEvent - private lateinit var itemEvent: DisenchantEvent - - private lateinit var splitBookClickEvent: ShatterClickEvent - private lateinit var itemClickEvent: DisenchantClickEvent - fun redirectListeners() { - val toUnregister = ArrayList() - // get required PrepareAnvilEvent listener - for (registeredListener in PrepareAnvilEvent.getHandlerList().registeredListeners) { - val listener = registeredListener.listener - - if(listener is ShatterEvent){ - this.splitEvent = listener - toUnregister.add(registeredListener) - } - - if(listener is DisenchantEvent){ - itemEvent = listener - toUnregister.add(registeredListener) - } - - } - - for (listener in toUnregister) { - PrepareAnvilEvent.getHandlerList().unregister(listener) - } - toUnregister.clear() - - // get required InventoryClickEvent listener - for (registeredListener in InventoryClickEvent.getHandlerList().registeredListeners) { - val listener = registeredListener.listener - - if(listener is ShatterClickEvent){ - splitBookClickEvent = listener - toUnregister.add(registeredListener) - } - - if(listener is DisenchantClickEvent){ - itemClickEvent = listener - toUnregister.add(registeredListener) - } - - } - - for (listener in toUnregister) { - InventoryClickEvent.getHandlerList().unregister(listener) - } - + PrepareAnvilEvent.getHandlerList().unregister(Disenchantment.plugin) + InventoryClickEvent.getHandlerList().unregister(Disenchantment.plugin) } fun testPrepareAnvil(event: PrepareAnvilEvent, player: HumanEntity): Boolean { @@ -76,15 +30,14 @@ class DisenchantmentDependency { event.result = null // Test if event change the result - itemEvent.onDisenchantmentEvent(event) - + DisenchantEvent.onEvent(event) if(event.result != null) { CustomAnvil.log("Detected pre anvil item extract bypass.") AnvilXpUtil.setAnvilInvXp(event.inventory, event.view, player, event.inventory.repairCost) return true } - splitEvent.onDisenchantmentEvent(event) + ShatterEvent.onEvent(event) if(event.result != null) { CustomAnvil.log("Detected pre anvil split enchant bypass.") AnvilXpUtil.setAnvilInvXp(event.inventory, event.view, player, event.inventory.repairCost) @@ -99,13 +52,13 @@ class DisenchantmentDependency { val previousResultSlot = inventory.getItem(PrepareAnvilListener.ANVIL_OUTPUT_SLOT)?.clone() // Test event if change the result - itemClickEvent.onDisenchantmentClickEvent(event) + DisenchantClickEvent.onEvent(event) if(!testAnvilInventoryChange(inventory, previousResultSlot) || event.isCancelled) { CustomAnvil.log("Detected anvil click item extract bypass.") return true } - splitBookClickEvent.onDisenchantmentClickEvent(event) + ShatterClickEvent.onEvent(event) if(!testAnvilInventoryChange(inventory, previousResultSlot) || event.isCancelled) { CustomAnvil.log("Detected anvil click split enchant bypass.") return true