Optimized display

This commit is contained in:
Auxilor
2022-04-29 23:15:07 +01:00
parent 11dcda6a75
commit 50375fc6d5
2 changed files with 26 additions and 24 deletions

View File

@@ -5,6 +5,7 @@ import com.willfp.eco.core.display.Display
import com.willfp.eco.core.display.DisplayModule import com.willfp.eco.core.display.DisplayModule
import com.willfp.eco.core.display.DisplayPriority import com.willfp.eco.core.display.DisplayPriority
import com.willfp.eco.core.fast.FastItemStack import com.willfp.eco.core.fast.FastItemStack
import com.willfp.eco.core.fast.fast
import com.willfp.eco.util.StringUtils import com.willfp.eco.util.StringUtils
import com.willfp.ecoitems.fuels.FuelUtils import com.willfp.ecoitems.fuels.FuelUtils
import com.willfp.ecoitems.items.ItemUtils import com.willfp.ecoitems.items.ItemUtils
@@ -18,33 +19,28 @@ class ItemsDisplay(plugin: EcoPlugin) : DisplayModule(plugin, DisplayPriority.LO
vararg args: Any vararg args: Any
) { ) {
val fis = FastItemStack.wrap(itemStack) val fis = FastItemStack.wrap(itemStack)
val meta = itemStack.itemMeta ?: return val ecoItem = ItemUtils.getEcoItem(itemStack)
val ecoItem = ItemUtils.getEcoItem(meta) val fuel = FuelUtils.getFuelFromItem(itemStack)
val fuel = FuelUtils.getFuelFromItem(meta)
if (fuel != null) { if (fuel != null) {
val fuelMeta = fuel.itemStack.itemMeta ?: return val lore = fuel.itemStack.fast().lore
val lore: MutableList<String> = fuelMeta.lore?.toMutableList() ?: return
if (meta.hasLore()) {
lore.addAll(meta.lore ?: return)
}
meta.lore = lore
meta.setDisplayName(fuelMeta.displayName)
itemStack.itemMeta = meta
}
if (ecoItem != null) {
val ecoItemMeta = ecoItem.itemStack.itemMeta ?: return
val lore = ecoItem.lore.map { "${Display.PREFIX}${StringUtils.format(it, player)}" }.toMutableList()
lore.addAll(fis.lore) lore.addAll(fis.lore)
meta.setDisplayName(ecoItemMeta.displayName) fis.lore = lore
meta.addItemFlags(*ecoItemMeta.itemFlags.toTypedArray()) fis.displayName = fuel.itemStack.fast().displayName
itemStack.itemMeta = meta }
if (ecoItem != null) {
val itemFast = FastItemStack.wrap(ecoItem.itemStack)
val lore = itemFast.lore.map { "${Display.PREFIX}${StringUtils.format(it, player)}" }.toMutableList()
lore.addAll(fis.lore)
fis.displayName = itemFast.displayName
fis.addItemFlags(*itemFast.itemFlags.toTypedArray())
fis.lore = lore fis.lore = lore
} }
} }
} }

View File

@@ -1,10 +1,12 @@
package com.willfp.ecoitems.fuels package com.willfp.ecoitems.fuels
import com.willfp.eco.core.fast.FastItemStack
import com.willfp.ecoitems.EcoItemsPlugin.Companion.instance import com.willfp.ecoitems.EcoItemsPlugin.Companion.instance
import com.willfp.ecoitems.items.EcoItem import com.willfp.ecoitems.items.EcoItem
import org.bukkit.entity.Player import org.bukkit.entity.Player
import org.bukkit.inventory.ItemStack import org.bukkit.inventory.ItemStack
import org.bukkit.inventory.meta.ItemMeta import org.bukkit.inventory.meta.ItemMeta
import org.bukkit.persistence.PersistentDataContainer
import org.bukkit.persistence.PersistentDataType import org.bukkit.persistence.PersistentDataType
object FuelUtils { object FuelUtils {
@@ -21,8 +23,8 @@ object FuelUtils {
*/ */
fun getFuelFromItem(itemStack: ItemStack?): Fuel? { fun getFuelFromItem(itemStack: ItemStack?): Fuel? {
itemStack ?: return null itemStack ?: return null
val meta = itemStack.itemMeta ?: return null val container = FastItemStack.wrap(itemStack).persistentDataContainer
return getFuelFromItem(meta) return getFuelFromItem(container)
} }
/** /**
@@ -33,6 +35,10 @@ object FuelUtils {
*/ */
fun getFuelFromItem(meta: ItemMeta): Fuel? { fun getFuelFromItem(meta: ItemMeta): Fuel? {
val container = meta.persistentDataContainer val container = meta.persistentDataContainer
return getFuelFromItem(container)
}
private fun getFuelFromItem(container: PersistentDataContainer): Fuel? {
val fuelName = container.get( val fuelName = container.get(
PLUGIN.namespacedKeyFactory.create("fuel"), PLUGIN.namespacedKeyFactory.create("fuel"),
PersistentDataType.STRING PersistentDataType.STRING