From 77e27cc63a8b7b622cc846270ecc2281a6584ffb Mon Sep 17 00:00:00 2001 From: LoJoSho Date: Sun, 29 Dec 2024 16:35:24 -0600 Subject: [PATCH] feat: use Paper methods for ItemSerializer display and lore when possible --- .../config/serializer/ItemSerializer.java | 31 ++++++++++++------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/config/serializer/ItemSerializer.java b/common/src/main/java/me/lojosho/hibiscuscommons/config/serializer/ItemSerializer.java index ac898e7..b26adef 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/config/serializer/ItemSerializer.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/config/serializer/ItemSerializer.java @@ -1,10 +1,8 @@ package me.lojosho.hibiscuscommons.config.serializer; +import me.lojosho.hibiscuscommons.HibiscusCommonsPlugin; import me.lojosho.hibiscuscommons.hooks.Hooks; -import me.lojosho.hibiscuscommons.util.ColorBuilder; -import me.lojosho.hibiscuscommons.util.InventoryUtils; -import me.lojosho.hibiscuscommons.util.ServerUtils; -import me.lojosho.hibiscuscommons.util.StringUtils; +import me.lojosho.hibiscuscommons.util.*; import org.apache.commons.lang3.EnumUtils; import org.bukkit.*; import org.bukkit.enchantments.Enchantment; @@ -71,9 +69,7 @@ public class ItemSerializer implements TypeSerializer { final ConfigurationNode blueNode = colorNode.node(BLUE); if (materialNode.virtual()) return null; - - String material = materialNode.getString(); - + String material = materialNode.getString(""); ItemStack item = Hooks.getItem(material); if (item == null) { //HMCCosmeticsPlugin.getInstance().getLogger().severe("Invalid Material -> " + material); @@ -83,15 +79,28 @@ public class ItemSerializer implements TypeSerializer { ItemMeta itemMeta = item.getItemMeta(); if (itemMeta == null) return item; - if (!nameNode.virtual()) - itemMeta.setDisplayName(StringUtils.parseStringToString((nameNode.getString("")))); + + if (!nameNode.virtual()) { + if (HibiscusCommonsPlugin.isOnPaper()) { + itemMeta.displayName(AdventureUtils.MINI_MESSAGE.deserialize(nameNode.getString(""))); + } else { + itemMeta.setDisplayName(StringUtils.parseStringToString(nameNode.getString(""))); + } + } if (!unbreakableNode.virtual()) itemMeta.setUnbreakable(unbreakableNode.getBoolean()); if (!glowingNode.virtual()) { itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS); itemMeta.addEnchant(Enchantment.LUCK, 1, true); } - if (!loreNode.virtual()) itemMeta.setLore(loreNode.getList(String.class, new ArrayList()). - stream().map(StringUtils::parseStringToString).collect(Collectors.toList())); + if (!loreNode.virtual()) { + if (HibiscusCommonsPlugin.isOnPaper()) { + itemMeta.lore(loreNode.getList(String.class, new ArrayList<>()). + stream().map(AdventureUtils.MINI_MESSAGE::deserialize).collect(Collectors.toList())); + } else { + itemMeta.setLore(loreNode.getList(String.class, new ArrayList<>()). + stream().map(StringUtils::parseStringToString).collect(Collectors.toList())); + } + } if (!modelDataNode.virtual()) itemMeta.setCustomModelData(modelDataNode.getInt()); if (!nbtNode.virtual()) {