Added item placeholder support for names and lore

This commit is contained in:
Auxilor
2023-09-25 10:57:02 +01:00
parent d5d58719a1
commit 9fc6885cb3
2 changed files with 19 additions and 6 deletions

View File

@@ -4,6 +4,8 @@ import com.willfp.eco.core.EcoPlugin
import com.willfp.eco.core.display.Display
import com.willfp.eco.core.display.DisplayModule
import com.willfp.eco.core.display.DisplayPriority
import com.willfp.eco.core.placeholder.context.placeholderContext
import com.willfp.eco.util.formatEco
import com.willfp.libreforge.ItemProvidedHolder
import com.willfp.talismans.talismans.util.TalismanChecks
import com.willfp.talismans.talismans.util.TalismanUtils
@@ -26,14 +28,24 @@ class TalismanDisplay(plugin: EcoPlugin) : DisplayModule(plugin, DisplayPriority
val talisman = TalismanChecks.getTalismanOnItem(itemStack) ?: return
meta.setDisplayName(talisman.name)
val placeholderContext = placeholderContext(
player = player,
item = itemStack
)
meta.setDisplayName(talisman.name.formatEco(placeholderContext))
if (talisman.itemStack.itemMeta?.hasCustomModelData() == true) {
meta.setCustomModelData(talisman.itemStack.itemMeta?.customModelData)
}
val lore = mutableListOf<String>()
lore.addAll(talisman.description)
lore.addAll(
talisman.description
.map { Display.PREFIX + it.formatEco(placeholderContext) }
)
lore.addAll(itemLore)
if (player != null) {

View File

@@ -9,6 +9,7 @@ import com.willfp.eco.core.recipe.Recipes
import com.willfp.eco.core.recipe.parts.EmptyTestableItem
import com.willfp.eco.core.recipe.recipes.CraftingRecipe
import com.willfp.eco.core.registry.Registrable
import com.willfp.eco.util.formatEco
import com.willfp.libreforge.Holder
import com.willfp.libreforge.ViolationContext
import com.willfp.libreforge.conditions.Conditions
@@ -29,9 +30,9 @@ class Talisman(
) : Holder, Registrable {
override val id: NamespacedKey = plugin.namespacedKeyFactory.create(id)
val name = config.getFormattedString("name")
val name = config.getString("name")
val description = config.getFormattedStrings("description").map { Display.PREFIX + it }
val description = config.getStrings("description")
private val _itemStack: ItemStack = run {
val item = Items.lookup(config.getString("item"))
@@ -40,8 +41,8 @@ class Talisman(
ItemStackBuilder(item.item)
.setAmount(1)
.setDisplayName(name)
.addLoreLines(description)
.setDisplayName(name.formatEco())
.addLoreLines(description.map { Display.PREFIX + it.formatEco() })
.writeMetaKey(plugin.namespacedKeyFactory.create("talisman"), PersistentDataType.STRING, id)
.build()
}