diff --git a/nms/nms-paper/src/main/kotlin/xyz/alexcrea/cuanvil/dialog/AnvilRenameDialogImpl.kt b/nms/nms-paper/src/main/kotlin/xyz/alexcrea/cuanvil/dialog/AnvilRenameDialogImpl.kt index e210daa9..7761cd57 100644 --- a/nms/nms-paper/src/main/kotlin/xyz/alexcrea/cuanvil/dialog/AnvilRenameDialogImpl.kt +++ b/nms/nms-paper/src/main/kotlin/xyz/alexcrea/cuanvil/dialog/AnvilRenameDialogImpl.kt @@ -18,8 +18,8 @@ import org.bukkit.craftbukkit.inventory.CraftInventoryView import org.bukkit.craftbukkit.inventory.view.CraftAnvilView import org.bukkit.entity.HumanEntity import org.bukkit.event.inventory.PrepareAnvilEvent -import org.bukkit.inventory.InventoryView import org.bukkit.inventory.ItemStack +import org.bukkit.inventory.view.AnvilView import org.bukkit.persistence.PersistentDataType import org.bukkit.plugin.Plugin import java.util.* @@ -121,7 +121,7 @@ class AnvilRenameDialogImpl( } } - private fun setResult(player: HumanEntity, view: InventoryView, result: String?) { + private fun setResult(player: HumanEntity, view: AnvilView, result: String?) { val defaultName = itemDefaultName(view.getItem(0)) if (defaultName == result) { setName(player, view, "", null) @@ -129,7 +129,7 @@ class AnvilRenameDialogImpl( } else setName(player, view, result, result) } - private fun setName(player: HumanEntity, view: InventoryView, name: String?, rename: String?) { + private fun setName(player: HumanEntity, view: AnvilView, name: String?, rename: String?) { val menu = (containerField.get(view) as AnvilMenu) val isSameName = menu.itemName == name menu.itemName = rename diff --git a/nms/nms-paper/src/main/kotlin/xyz/alexcrea/cuanvil/util/AnvilTitleUtil.kt b/nms/nms-paper/src/main/kotlin/xyz/alexcrea/cuanvil/util/AnvilTitleUtil.kt index e40e7ede..dc8ac092 100644 --- a/nms/nms-paper/src/main/kotlin/xyz/alexcrea/cuanvil/util/AnvilTitleUtil.kt +++ b/nms/nms-paper/src/main/kotlin/xyz/alexcrea/cuanvil/util/AnvilTitleUtil.kt @@ -2,17 +2,18 @@ package xyz.alexcrea.cuanvil.util import io.papermc.paper.threadedregions.scheduler.ScheduledTask import org.bukkit.entity.HumanEntity -import org.bukkit.inventory.InventoryView +import org.bukkit.inventory.view.AnvilView import org.bukkit.plugin.Plugin import xyz.alexcrea.cuanvil.dialog.AnvilRenameDialog import java.util.HashMap import java.util.UUID +@Suppress("UnstableApiUsage") object AnvilTitleUtil { private val runTaskMap = HashMap() - private fun actualRename(view: InventoryView, name: String, player: HumanEntity, anvilDialog: AnvilRenameDialog) { + private fun actualRename(view: AnvilView, name: String, player: HumanEntity, anvilDialog: AnvilRenameDialog) { runTaskMap.remove(player.uniqueId) if (view.title == name) return @@ -24,7 +25,7 @@ object AnvilTitleUtil { // We don't want to rename instantly it is causing issue with rename text // especially as it can "override" current ui when it is rename ui time but rename ui also need some delay - fun rename(view: InventoryView, name: String, player: HumanEntity, anvilDialog: AnvilRenameDialog, plugin: Plugin) { + fun rename(view: AnvilView, name: String, player: HumanEntity, anvilDialog: AnvilRenameDialog, plugin: Plugin) { runTaskMap.remove(player.uniqueId)?.cancel() val task = player.scheduler.runDelayed( diff --git a/src/main/kotlin/io/delilaheve/util/ItemUtil.kt b/src/main/kotlin/io/delilaheve/util/ItemUtil.kt index 691e84b1..b883f3e9 100644 --- a/src/main/kotlin/io/delilaheve/util/ItemUtil.kt +++ b/src/main/kotlin/io/delilaheve/util/ItemUtil.kt @@ -5,7 +5,6 @@ import org.bukkit.Material.ENCHANTED_BOOK import org.bukkit.inventory.ItemStack import org.bukkit.inventory.meta.Damageable import xyz.alexcrea.cuanvil.update.UpdateUtils -import xyz.alexcrea.cuanvil.enchant.CAEnchantment import xyz.alexcrea.cuanvil.util.MaterialUtil.customType import kotlin.math.ceil import kotlin.math.max @@ -49,7 +48,6 @@ object ItemUtil { val secondDurability = maxDamage - secondDamage val combinedDurability = firstDurability + secondDurability val newDurability = min(combinedDurability, maxDamage) - val maxDamage = if(it.hasMaxDamage()) it.maxDamage else Int.MAX_VALUE meta.damage = min(maxDamage - newDurability, maxDamage) this.itemMeta = meta diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/command/EnchantExecutor.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/command/EnchantExecutor.kt index 70b8b8e8..654df1a8 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/command/EnchantExecutor.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/command/EnchantExecutor.kt @@ -116,7 +116,7 @@ class EnchantExecutor : CASubCommand { } private fun firstEnchantment(name: String): CAEnchantment? { - val enchants = EnchantmentApi.getListByName(name.lowercase()) + val enchants = EnchantmentApi.getByName(name.lowercase()) if (!enchants.isEmpty()) return enchants.iterator().next() diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DependencyManager.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DependencyManager.kt index 5958b696..25b3e62a 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DependencyManager.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DependencyManager.kt @@ -334,7 +334,7 @@ object DependencyManager { private val prepareAnvilConstructor = PrepareAnvilEvent::class.java.constructors.first() as Constructor - fun createFakeEvent(view: InventoryView, result: ItemStack?): PrepareAnvilEvent { + fun createFakeEvent(view: AnvilView, result: ItemStack?): PrepareAnvilEvent { return prepareAnvilConstructor.newInstance(view, result) } diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/gui/GenericExternGuiTester.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/gui/GenericExternGuiTester.kt index b9410886..cd62c816 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/gui/GenericExternGuiTester.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/gui/GenericExternGuiTester.kt @@ -1,10 +1,11 @@ package xyz.alexcrea.cuanvil.dependency.gui -import org.bukkit.inventory.InventoryView +import org.bukkit.inventory.view.AnvilView import xyz.alexcrea.cuanvil.dependency.MinecraftVersionUtil import xyz.alexcrea.cuanvil.dependency.util.PlatformUtil import java.lang.reflect.Method +@Suppress("UnstableApiUsage") class GenericExternGuiTester { companion object { @@ -21,7 +22,7 @@ class GenericExternGuiTester { var testedClass: String? = null lateinit var getHandleMethod: Method - private fun getContainerClass(view: InventoryView): Class? { + private fun getContainerClass(view: AnvilView): Class? { if(!testedClass.contentEquals(view.javaClass.name)) return null @@ -64,7 +65,7 @@ class GenericExternGuiTester { } // Try if were in another plugin anvil inventory - fun testIfGui(view: InventoryView): Boolean { + fun testIfGui(view: AnvilView): Boolean { // In case we are in a test environment if(isInTest()) return false diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/plugins/EnchantedBookDependency.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/plugins/EnchantedBookDependency.kt index 54de4e12..da3a57e2 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/plugins/EnchantedBookDependency.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/plugins/EnchantedBookDependency.kt @@ -2,15 +2,17 @@ package xyz.alexcrea.cuanvil.dependency.plugins import org.bukkit.event.Event import org.bukkit.event.inventory.InventoryClickEvent +import org.bukkit.inventory.view.AnvilView 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 +@Suppress("UnstableApiUsage") class EnchantedBookDependency(plugin: Plugin) : GenericPluginDependency(plugin) { override fun testAnvilResult(event: InventoryClickEvent): Boolean { - val view = event.view + val view = event.view as? AnvilView ?: return false val inv = event.inventory //TODO use view here (v2)