From 9b77fa2d21ee4e40325269c84c62081c7ec1b613 Mon Sep 17 00:00:00 2001 From: Auxilor Date: Mon, 11 Oct 2021 12:00:15 +0100 Subject: [PATCH] Fixed reforge name duplication --- .../reforges/display/ReforgesDisplay.kt | 32 ++++++++++++------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/display/ReforgesDisplay.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/display/ReforgesDisplay.kt index 98993cb..93e5ac1 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/display/ReforgesDisplay.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/reforges/display/ReforgesDisplay.kt @@ -13,17 +13,26 @@ import com.willfp.reforges.reforges.util.ReforgeUtils import net.kyori.adventure.text.Component import net.kyori.adventure.text.TextReplacementConfig import net.kyori.adventure.text.format.TextDecoration +import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer import org.bukkit.Material import org.bukkit.inventory.ItemStack import org.bukkit.inventory.meta.SkullMeta +import org.bukkit.persistence.PersistentDataType @Suppress("DEPRECATION") class ReforgesDisplay(private val plugin: ReforgesPlugin) : DisplayModule(plugin, DisplayPriority.HIGHEST) { + /** + * Deprecated + */ + @Deprecated("Use PDC components!") private val replacement = TextReplacementConfig.builder() .match("§w(.+)§w") .replacement("") .build() + private val originalComponentKey = plugin.namespacedKeyFactory.create("real_name") + private val serializer = GsonComponentSerializer.gson() + override fun display( itemStack: ItemStack, vararg args: Any @@ -76,12 +85,13 @@ class ReforgesDisplay(private val plugin: ReforgesPlugin) : DisplayModule(plugin lore.addAll(addLore) } if (plugin.configYml.getBool("reforge.display-in-name") && Prerequisite.HAS_PAPER.isMet) { - val displayName = - (if (meta.hasDisplayName()) meta.displayName()!! else Component.translatable(itemStack)) - .replaceText( - replacement - ) - val newName = StringUtils.toComponent("§w${reforge.name} §w") + val displayName = (meta.displayName() ?: Component.translatable(itemStack)).replaceText(replacement) + meta.persistentDataContainer.set( + originalComponentKey, + PersistentDataType.STRING, + serializer.serialize(displayName) + ) + val newName = StringUtils.toComponent("${reforge.name} ") .decoration(TextDecoration.ITALIC, false).append(displayName) meta.displayName(newName) } @@ -96,12 +106,10 @@ class ReforgesDisplay(private val plugin: ReforgesPlugin) : DisplayModule(plugin val meta = itemStack.itemMeta ?: return if (plugin.configYml.getBool("reforge.display-in-name") && Prerequisite.HAS_PAPER.isMet) { - val displayName = meta.displayName() ?: return - meta.displayName( - displayName.replaceText( - replacement - ) - ) + val originalName = + meta.persistentDataContainer.get(originalComponentKey, PersistentDataType.STRING) ?: return + meta.persistentDataContainer.remove(originalComponentKey) + meta.displayName(serializer.deserialize(originalName).replaceText(replacement)) } itemStack.itemMeta = meta