diff --git a/COMPATIBILITY.md b/COMPATIBILITY.md index 6de29076..d3cfd8b3 100644 --- a/COMPATIBILITY.md +++ b/COMPATIBILITY.md @@ -40,8 +40,6 @@ Custom Items support is considered unstable. If you find issue please report it - [Disenchantment](https://www.spigotmc.org/resources/disenchantment-1-21-1-1-20-6-new-book-splitting-mechanics.110741/) by H7KZ Partially use Custom Anvil maximum XP settings (>= 6.1.5) -- [EnchantedBook](https://modrinth.com/plugin/enchantedbook) by Minacle - - [HavenBags](https://www.spigotmc.org/resources/havenbags-shulker-like-player-bound-bags-1-17-1-21-4.110420/) by hyperdefined For bag upgrade and skin via anvil. (version >= 1.31.0) diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/command/DiagnosticExecutor.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/command/DiagnosticExecutor.kt index 75459728..b095e14c 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/command/DiagnosticExecutor.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/command/DiagnosticExecutor.kt @@ -130,9 +130,9 @@ class DiagnosticExecutor: CASubCommand() { message.clickEvent = ClickEvent(ClickEvent.Action.COPY_TO_CLIPBOARD, stb.toString()) message.hoverEvent = HoverEvent(HoverEvent.Action.SHOW_TEXT, Text("ยง7Click to copy")) - sender.spigot().sendMessage(message) + sender.spigot().sendMessage(message); } else { - sender.sendMessage(stb.toString()) + sender.sendMessage(stb.toString()); } return true @@ -267,8 +267,8 @@ class DiagnosticExecutor: CASubCommand() { try { val fakeInv = Bukkit.createInventory(player, InventoryType.ANVIL) invView = player.openInventory(fakeInv)!! - event = DependencyManager.createFakeEvent(invView, result) - } catch (_: Throwable) { + event = PrepareAnvilEvent(invView, result) + } catch (e: Throwable) { // Help val menuTypeClazz = Class.forName("org.bukkit.inventory.MenuType") val anvilTypeField = menuTypeClazz.getField("ANVIL") diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DependencyManager.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DependencyManager.kt index 3d5b8e86..b730a0ee 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DependencyManager.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DependencyManager.kt @@ -33,7 +33,6 @@ import xyz.alexcrea.cuanvil.dependency.util.PlatformUtil import xyz.alexcrea.cuanvil.dependency.util.PlatformUtil.componentLore import xyz.alexcrea.cuanvil.listener.PrepareAnvilListener.Companion.ANVIL_OUTPUT_SLOT import xyz.alexcrea.cuanvil.util.MetricsUtil.trackError -import java.lang.reflect.Constructor import java.util.logging.Level object DependencyManager { @@ -104,7 +103,7 @@ object DependencyManager { axPlayerWarpsCompatibility = AxPlayerWarpsDependency() } - if (pluginManager.isPluginEnabled("ItemsAdder")) { + if (pluginManager.isPluginEnabled("ItemsAdder")){ val dependency = ItemsAdderDependency(pluginManager.getPlugin("ItemsAdder")!!) itemsAdderCompatibility = dependency genericDependencies.add(dependency) @@ -117,16 +116,12 @@ object DependencyManager { if (pluginManager.isPluginEnabled("ItemsAdder")) genericDependencies.add(GenericPluginDependency(pluginManager.getPlugin("ItemsAdder")!!)) - if (pluginManager.isPluginEnabled("SuperEnchants")) { + if (pluginManager.isPluginEnabled("SuperEnchants")){ val compatibility = SuperEnchantDependency(pluginManager.getPlugin("SuperEnchants")!! as SuperEnchants) - if (compatibility.registerEnchantments()) + if(compatibility.registerEnchantments()) genericDependencies.add(compatibility) } - if (pluginManager.isPluginEnabled("EnchantedBook")) { - genericDependencies.add(EnchantedBookDependency(pluginManager.getPlugin("EnchantedBook")!!)) - } - for (dependency in genericDependencies) dependency.redirectListeners() @@ -312,7 +307,7 @@ object DependencyManager { private fun unsafeCloneItem(item: ItemStack): ItemStack { val cloned = itemsAdderCompatibility?.tryClone(item) - if (cloned != null) return cloned + if(cloned != null) return cloned return item.clone() } @@ -333,12 +328,4 @@ object DependencyManager { enchantmentSquaredCompatibility?.updateLore(item) } - - private val prepareAnvilConstructor = - PrepareAnvilEvent::class.java.constructors.first() as Constructor - - fun createFakeEvent(view: InventoryView, result: ItemStack?): PrepareAnvilEvent { - return prepareAnvilConstructor.newInstance(view, result) - } - } diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/plugins/EnchantedBookDependency.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/plugins/EnchantedBookDependency.kt deleted file mode 100644 index 54de4e12..00000000 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/plugins/EnchantedBookDependency.kt +++ /dev/null @@ -1,32 +0,0 @@ -package xyz.alexcrea.cuanvil.dependency.plugins - -import org.bukkit.event.Event -import org.bukkit.event.inventory.InventoryClickEvent -import org.bukkit.plugin.Plugin -import xyz.alexcrea.cuanvil.dependency.DependencyManager -import xyz.alexcrea.cuanvil.listener.PrepareAnvilListener.Companion.ANVIL_INPUT_LEFT -import xyz.alexcrea.cuanvil.listener.PrepareAnvilListener.Companion.ANVIL_OUTPUT_SLOT - -class EnchantedBookDependency(plugin: Plugin) : GenericPluginDependency(plugin) { - - override fun testAnvilResult(event: InventoryClickEvent): Boolean { - val view = event.view - val inv = event.inventory - - //TODO use view here (v2) - val current = inv.getItem(ANVIL_OUTPUT_SLOT) - inv.setItem(ANVIL_OUTPUT_SLOT, null) - val fakeEvent = DependencyManager.createFakeEvent(view, null) - - if (testPrepareAnvil(fakeEvent)) { - event.result = Event.Result.DEFAULT - - inv.setItem(ANVIL_INPUT_LEFT, fakeEvent.result) - return true - } - - inv.setItem(ANVIL_INPUT_LEFT, current) - return false - } - -} 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 8ac479f1..816a4dfe 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/plugins/ExcellentEnchantsDependency.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/plugins/ExcellentEnchantsDependency.kt @@ -9,11 +9,11 @@ import org.bukkit.inventory.ItemStack import org.bukkit.plugin.RegisteredListener import xyz.alexcrea.cuanvil.api.EnchantmentApi import xyz.alexcrea.cuanvil.api.event.listener.CATreatAnvilResult2Event -import xyz.alexcrea.cuanvil.dependency.DependencyManager 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 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 @@ -47,7 +47,7 @@ class ExcellentEnchantsDependency { listenerVersion = value break - } catch (_: ClassNotFoundException) { + } catch (ignored: ClassNotFoundException) { } } @@ -60,7 +60,7 @@ class ExcellentEnchantsDependency { var isModernCurseOfFragility = true try { Class.forName("su.nightexpress.excellentenchants.enchantment.universal.CurseOfFragilityEnchant") - } catch (_: ClassNotFoundException) { + } catch (ignored: ClassNotFoundException) { isModernCurseOfFragility = false } @@ -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,7 +226,7 @@ class ExcellentEnchantsDependency { val first: ItemStack = treatInput(event.leftItem) val second: ItemStack = treatInput(event.rightItem) - val fakeEvent = DependencyManager.createFakeEvent(event.view, result) + val fakeEvent = prepareAnvilConstructor.newInstance(event.view, result) handleCombineMethod.invoke(this.usedAnvilListener, fakeEvent, first, second, result) diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 97188e14..d436b10a 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -84,4 +84,3 @@ softdepend: - ExcellentEnchants - HavenBags - SuperEnchants - - EnchantedBook