remove rename pdc on paper lore append

This commit is contained in:
alexcrea 2026-06-09 14:08:17 +02:00
parent bf4395ba3f
commit d679cd73f9
Signed by: alexcrea
GPG key ID: E346CD16413450E3
2 changed files with 55 additions and 39 deletions

View file

@ -76,8 +76,10 @@ object AnvilMergeLogic {
val amount: Int
val recipe: AnvilCustomRecipe?
constructor(item: ItemStack?, cost: CustomCraftCost,
amount: Int, recipe: AnvilCustomRecipe?) : super(item, cost, true) {
constructor(
item: ItemStack?, cost: CustomCraftCost,
amount: Int, recipe: AnvilCustomRecipe?
) : super(item, cost, true) {
this.customCraftCost = cost
this.amount = amount
this.recipe = recipe
@ -96,7 +98,8 @@ object AnvilMergeLogic {
}
}
fun doRenaming(inventory: AnvilInventory,
fun doRenaming(
inventory: AnvilInventory,
player: Player, first: ItemStack
): AnvilResult {
val resultItem = DependencyManager.cloneItem(player, first)
@ -115,14 +118,18 @@ object AnvilMergeLogic {
return AnvilResult(result, cost)
}
private fun processDialogPCD(it: ItemMeta, player: HumanEntity) {
private fun processDialogPCD(meta: ItemMeta, player: HumanEntity) {
val text = AnvilRenameDialogUtil.anvilRenameDialog.currentText(player)
return processPCD(meta, player, text)
}
fun processPCD(meta: ItemMeta, player: HumanEntity, text: String?) {
val keepDialog = ConfigOptions.canUseDialogRename(player) && ConfigOptions.shouldKeepRenameText
val pdc = it.persistentDataContainer
val pdc = meta.persistentDataContainer
if (!keepDialog)
pdc.remove(AnvilRenameDialog.PCD_KEEP_RENAME_TEXT_KEY)
else {
val text = AnvilRenameDialogUtil.anvilRenameDialog.currentText(player)
if (text == null || text.isBlank())
pdc.remove(AnvilRenameDialog.PCD_KEEP_RENAME_TEXT_KEY)
else pdc.set(AnvilRenameDialog.PCD_KEEP_RENAME_TEXT_KEY, PersistentDataType.STRING, text)
@ -138,7 +145,8 @@ object AnvilMergeLogic {
if (ConfigOptions.renameColorPossible && renameText != null) {
val component = AnvilColorUtil.handleColor(
renameText,
AnvilColorUtil.renamePermission(player))
AnvilColorUtil.renamePermission(player)
)
if (component != null) {
renameText = MiniMessageUtil.legacy_mm.serialize(component)
@ -160,7 +168,8 @@ object AnvilMergeLogic {
renameText == "" ||
//TODO on recent paper check effective name instead
renameText == CasedStringUtil.snakeToUpperSpacedCase(resultItem.type.name.lowercase())
)) {
)
) {
it.setDisplayName(renameText)
processDialogPCD(it, player)
resultItem.itemMeta = it

View file

@ -119,7 +119,8 @@ class AnvilResultListener : Listener {
// Unit repair
val unitRepairResult = AnvilMergeLogic.testUnitRepair(
inventory, player,
leftItem, rightItem)
leftItem, rightItem
)
if (unitRepairResult.isEmpty()) {
onUnitRepairExtract(
rightItem, event, player, inventory,
@ -153,9 +154,11 @@ class AnvilResultListener : Listener {
if (recipe.removeExactLinearXp) rawCost
else AnvilXpUtil.calculateLevelForXp(rawCost)
CustomAnvil.log("gamemode: ${player.gameMode != GameMode.CREATIVE}, " +
CustomAnvil.log(
"gamemode: ${player.gameMode != GameMode.CREATIVE}, " +
"cost: $finalCost, level: ${player.level}, " +
"result: ${player.totalExperience < finalCost} ${player.level < finalCost}")
"result: ${player.totalExperience < finalCost} ${player.level < finalCost}"
)
if (player.gameMode != GameMode.CREATIVE) {
if (ConfigOptions.shouldUseMoney(player)) {
@ -486,6 +489,10 @@ class AnvilResultListener : Listener {
paperCopy = rightItem.clone()
paperCopy.amount = 1
paperMeta.setComponentDisplayName(null)
// Remove pcd name
AnvilMergeLogic.processPCD(paperMeta, player, null)
paperCopy.itemMeta = paperMeta
}