Optimized display
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user