fix rename text not acting as vanilla

This commit is contained in:
alexcrea 2026-07-16 18:44:23 +02:00
parent da10f0df5f
commit 7b232528f1
Signed by: alexcrea
GPG key ID: E59DF23EE2A2266C
2 changed files with 28 additions and 20 deletions

View file

@ -37,7 +37,7 @@ object PlatformUtil {
// Lore // Lore
fun ItemMeta.componentLore(): MutableList<Component> { fun ItemMeta.componentLore(): MutableList<Component> {
val lore: List<Component>? val lore: List<Component>?
if(isPaper){ if (isPaper) {
lore = this.lore() lore = this.lore()
} else { } else {
val legacyLores = this.lore ?: return ArrayList() val legacyLores = this.lore ?: return ArrayList()
@ -52,13 +52,15 @@ object PlatformUtil {
} }
fun ItemMeta.setComponentLore(lore: List<Component?>) { fun ItemMeta.setComponentLore(lore: List<Component?>) {
if(isPaper){ if (isPaper) {
this.lore(lore) this.lore(lore)
} else { } else {
val legacyLore = ArrayList<String?>(lore.size) val legacyLore = ArrayList<String?>(lore.size)
for (component in lore) { for (component in lore) {
legacyLore.add(if(component == null) null legacyLore.add(
else legacy_mm.serialize(component)) if (component == null) null
else legacy_mm.serialize(component)
)
} }
this.lore = legacyLore this.lore = legacyLore
@ -69,32 +71,31 @@ object PlatformUtil {
private val useCustomName = hasMethod(ItemStack::class.java, "customName") private val useCustomName = hasMethod(ItemStack::class.java, "customName")
fun ItemMeta.componentDisplayName(): Component? { fun ItemMeta.componentDisplayName(): Component? {
if(useCustomName){ if (useCustomName) {
if(!this.hasCustomName()) return null if (!this.hasCustomName()) return null
return this.customName() return this.customName()
}else if(isPaper){ }
if(!this.hasDisplayName()) return null if (!this.hasDisplayName()) return null
return this.displayName()
return if (isPaper) {
this.displayName()
} else { } else {
if(!this.hasDisplayName()) return null legacy_mm.deserialize(this.displayName)
val legacy = this.displayName
return legacy_mm.deserialize(legacy)
} }
} }
fun ItemMeta.setComponentDisplayName(component: Component?) { fun ItemMeta.setComponentDisplayName(component: Component?, fallback: String? = null) {
if(useCustomName){ if (useCustomName) {
this.customName(component) this.customName(component)
}else if(isPaper){ } else if (isPaper) {
this.displayName(component) this.displayName(component)
} else { } else {
if(component == null){ if (component == null) {
this.setDisplayName(null) this.setDisplayName(null)
return return
} }
val legacy = legacy_mm.serialize(component) val legacy = fallback ?: legacy_mm.serialize(component)
this.setDisplayName(legacy) this.setDisplayName(legacy)
} }
} }

View file

@ -6,6 +6,7 @@ import io.delilaheve.util.EnchantmentUtil.combineWith
import io.delilaheve.util.ItemUtil.isEnchantedBook import io.delilaheve.util.ItemUtil.isEnchantedBook
import io.delilaheve.util.ItemUtil.repairFrom import io.delilaheve.util.ItemUtil.repairFrom
import io.delilaheve.util.ItemUtil.unitRepair import io.delilaheve.util.ItemUtil.unitRepair
import net.kyori.adventure.text.Component
import org.bukkit.ChatColor import org.bukkit.ChatColor
import org.bukkit.Material import org.bukkit.Material
import org.bukkit.entity.HumanEntity import org.bukkit.entity.HumanEntity
@ -17,6 +18,7 @@ import org.bukkit.inventory.meta.ItemMeta
import org.bukkit.persistence.PersistentDataType import org.bukkit.persistence.PersistentDataType
import xyz.alexcrea.cuanvil.api.EnchantmentApi import xyz.alexcrea.cuanvil.api.EnchantmentApi
import xyz.alexcrea.cuanvil.dependency.DependencyManager import xyz.alexcrea.cuanvil.dependency.DependencyManager
import xyz.alexcrea.cuanvil.dependency.util.PlatformUtil.setComponentDisplayName
import xyz.alexcrea.cuanvil.dialog.AnvilRenameDialog import xyz.alexcrea.cuanvil.dialog.AnvilRenameDialog
import xyz.alexcrea.cuanvil.enchant.CAEnchantment import xyz.alexcrea.cuanvil.enchant.CAEnchantment
import xyz.alexcrea.cuanvil.recipe.AnvilCustomRecipe import xyz.alexcrea.cuanvil.recipe.AnvilCustomRecipe
@ -139,11 +141,12 @@ object AnvilMergeLogic {
private fun handleRename(resultItem: ItemStack, inventory: AnvilInventory, player: HumanEntity): Int { private fun handleRename(resultItem: ItemStack, inventory: AnvilInventory, player: HumanEntity): Int {
// Can be null // Can be null
var renameText = ChatColor.stripColor(inventory.renameText) var renameText = ChatColor.stripColor(inventory.renameText)
var component: Component? = null
var sumCost = 0 var sumCost = 0
var useColor = false var useColor = false
if (ConfigOptions.renameColorPossible && renameText != null) { if (ConfigOptions.renameColorPossible && renameText != null) {
val component = AnvilColorUtil.handleColor( component = AnvilColorUtil.handleColor(
renameText, renameText,
AnvilColorUtil.renamePermission(player) AnvilColorUtil.renamePermission(player)
) )
@ -170,7 +173,11 @@ object AnvilMergeLogic {
renameText == CasedStringUtil.snakeToUpperSpacedCase(resultItem.type.name.lowercase()) renameText == CasedStringUtil.snakeToUpperSpacedCase(resultItem.type.name.lowercase())
) )
) { ) {
it.setDisplayName(renameText) if (component == null)
component = if (renameText == null || renameText.isEmpty()) null
else Component.text(renameText)
it.setComponentDisplayName(component, renameText)
processDialogPCD(it, player) processDialogPCD(it, player)
resultItem.itemMeta = it resultItem.itemMeta = it