diff --git a/nms/nms-common/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/util/PlatformUtil.kt b/nms/nms-common/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/util/PlatformUtil.kt index aaa218fa..3f709c7f 100644 --- a/nms/nms-common/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/util/PlatformUtil.kt +++ b/nms/nms-common/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/util/PlatformUtil.kt @@ -37,7 +37,7 @@ object PlatformUtil { // Lore fun ItemMeta.componentLore(): MutableList { val lore: List? - if (isPaper) { + if(isPaper){ lore = this.lore() } else { val legacyLores = this.lore ?: return ArrayList() @@ -52,41 +52,49 @@ object PlatformUtil { } fun ItemMeta.setComponentLore(lore: List) { - if (isPaper) { + if(isPaper){ this.lore(lore) } else { val legacyLore = ArrayList(lore.size) for (component in lore) { - legacyLore.add( - if (component == null) null - else legacy_mm.serialize(component) - ) + legacyLore.add(if(component == null) null + else legacy_mm.serialize(component)) } this.lore = legacyLore } } - fun ItemMeta.componentDisplayName(): Component? { - if (!this.hasDisplayName()) return null + // Display name + private val useCustomName = hasMethod(ItemStack::class.java, "customName") - return if (isPaper) { - this.displayName() + fun ItemMeta.componentDisplayName(): Component? { + if(useCustomName){ + if(!this.hasCustomName()) return null + return this.customName() + }else if(isPaper){ + if(!this.hasDisplayName()) return null + return this.displayName() } else { - legacy_mm.deserialize(this.displayName) + if(!this.hasDisplayName()) return null + + val legacy = this.displayName + return legacy_mm.deserialize(legacy) } } - fun ItemMeta.setComponentDisplayName(component: Component?, fallback: String? = null) { - if (isPaper) { + fun ItemMeta.setComponentDisplayName(component: Component?) { + if(useCustomName){ + this.customName(component) + }else if(isPaper){ this.displayName(component) } else { - if (component == null) { + if(component == null){ this.setDisplayName(null) return } - val legacy = fallback ?: legacy_mm.serialize(component) + val legacy = legacy_mm.serialize(component) this.setDisplayName(legacy) } } diff --git a/src/main/kotlin/io/delilaheve/CustomAnvil.kt b/src/main/kotlin/io/delilaheve/CustomAnvil.kt index 762c8b63..66d812b9 100644 --- a/src/main/kotlin/io/delilaheve/CustomAnvil.kt +++ b/src/main/kotlin/io/delilaheve/CustomAnvil.kt @@ -136,7 +136,7 @@ open class CustomAnvil : JavaPlugin() { override fun onEnable() { instance = this try { - if(legacyCheck()) return + legacyCheck() } catch (e: Exception) { logger.log(Level.SEVERE, "error trying to check for legacy system", e) MetricsUtil.trackError(e) @@ -202,15 +202,14 @@ open class CustomAnvil : JavaPlugin() { } } - private fun legacyCheck(): Boolean { + private fun legacyCheck() { val currentVersion = UpdateUtils.currentMinecraftVersion() if (currentVersion.greaterEqual(Version(1, 21, 0)) - && !DependencyManager.inTesting - && !"true".equals(System.getenv("CUSTOM_ANVIL_BYPASS_LEGACY_CHECK"), true)) { + && !DependencyManager.inTesting) { logger.warning("You are running a Minecraft version above or equal to 1.21.0") logger.warning("Please use CustomAnvil v2 instead if you wish to use the plugin with this version.") Bukkit.getPluginManager().disablePlugin(this) - return true + return } // Disable old plugin name if exist val potentialPlugin = Bukkit.getPluginManager().getPlugin("UnsafeEnchantsPlus") @@ -243,7 +242,6 @@ open class CustomAnvil : JavaPlugin() { logger.warning("An update may be available: $latestVer") } - return false } private fun registerListeners() { diff --git a/src/main/kotlin/io/delilaheve/util/ItemUtil.kt b/src/main/kotlin/io/delilaheve/util/ItemUtil.kt index dba79b28..5bac8f0e 100644 --- a/src/main/kotlin/io/delilaheve/util/ItemUtil.kt +++ b/src/main/kotlin/io/delilaheve/util/ItemUtil.kt @@ -75,6 +75,6 @@ object ItemUtil { * The two items should either be the same type, or, the [other] is a book */ fun ItemStack.canMergeWith( - other: ItemStack - ) = customType == other.customType || (other.isEnchantedBook()) + other: ItemStack? + ) = (other != null) && (customType == other.customType || (other.isEnchantedBook())) } diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/anvil/AnvilMergeLogic.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/anvil/AnvilMergeLogic.kt index f398fd97..fd7055ed 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/anvil/AnvilMergeLogic.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/anvil/AnvilMergeLogic.kt @@ -6,7 +6,6 @@ import io.delilaheve.util.EnchantmentUtil.combineWith import io.delilaheve.util.ItemUtil.isEnchantedBook import io.delilaheve.util.ItemUtil.repairFrom import io.delilaheve.util.ItemUtil.unitRepair -import net.kyori.adventure.text.Component import org.bukkit.ChatColor import org.bukkit.Material import org.bukkit.entity.HumanEntity @@ -18,7 +17,6 @@ import org.bukkit.inventory.meta.ItemMeta import org.bukkit.persistence.PersistentDataType import xyz.alexcrea.cuanvil.api.EnchantmentApi import xyz.alexcrea.cuanvil.dependency.DependencyManager -import xyz.alexcrea.cuanvil.dependency.util.PlatformUtil.setComponentDisplayName import xyz.alexcrea.cuanvil.dialog.AnvilRenameDialog import xyz.alexcrea.cuanvil.enchant.CAEnchantment import xyz.alexcrea.cuanvil.recipe.AnvilCustomRecipe @@ -141,12 +139,11 @@ object AnvilMergeLogic { private fun handleRename(resultItem: ItemStack, inventory: AnvilInventory, player: HumanEntity): Int { // Can be null var renameText = ChatColor.stripColor(inventory.renameText) - var component: Component? = null var sumCost = 0 var useColor = false if (ConfigOptions.renameColorPossible && renameText != null) { - component = AnvilColorUtil.handleColor( + val component = AnvilColorUtil.handleColor( renameText, AnvilColorUtil.renamePermission(player) ) @@ -173,11 +170,7 @@ object AnvilMergeLogic { renameText == CasedStringUtil.snakeToUpperSpacedCase(resultItem.type.name.lowercase()) ) ) { - if (component == null) - component = if (renameText == null || renameText.isEmpty()) null - else Component.text(renameText) - it.setComponentDisplayName(component, renameText) - + it.setDisplayName(renameText) processDialogPCD(it, player) resultItem.itemMeta = it diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/listener/AnvilResultListener.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/listener/AnvilResultListener.kt index 7ab1037f..dd35ed69 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/listener/AnvilResultListener.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/listener/AnvilResultListener.kt @@ -31,7 +31,6 @@ import xyz.alexcrea.cuanvil.listener.PrepareAnvilListener.Companion.ANVIL_INPUT_ import xyz.alexcrea.cuanvil.listener.PrepareAnvilListener.Companion.ANVIL_INPUT_RIGHT import xyz.alexcrea.cuanvil.listener.PrepareAnvilListener.Companion.ANVIL_OUTPUT_SLOT import xyz.alexcrea.cuanvil.util.CustomRecipeUtil -import xyz.alexcrea.cuanvil.util.MaterialUtil.isAir import xyz.alexcrea.cuanvil.util.MiniMessageUtil import xyz.alexcrea.cuanvil.util.anvil.AnvilLoreEditUtil import xyz.alexcrea.cuanvil.util.anvil.AnvilXpUtil @@ -93,7 +92,7 @@ class AnvilResultListener : Listener { } // Rename - if (rightItem.isAir) { + if (rightItem == null) { val result = AnvilMergeLogic.doRenaming(view, inventory, player, leftItem) if (result.isEmpty()) return @@ -107,7 +106,7 @@ class AnvilResultListener : Listener { } // Merge - val canMerge = leftItem.canMergeWith(rightItem!!) + val canMerge = leftItem.canMergeWith(rightItem) if (canMerge) { val result = AnvilMergeLogic.doMerge(view, inventory, player, leftItem, rightItem) diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/util/MaterialUtil.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/util/MaterialUtil.kt index af5020c7..dc1e25a9 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/util/MaterialUtil.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/util/MaterialUtil.kt @@ -1,5 +1,6 @@ package xyz.alexcrea.cuanvil.util +import org.bukkit.Bukkit import org.bukkit.Material import org.bukkit.NamespacedKey import org.bukkit.inventory.ItemStack