diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/config/serializer/ItemSerializer.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/config/serializer/ItemSerializer.java index 636b1863..48f74301 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/config/serializer/ItemSerializer.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/config/serializer/ItemSerializer.java @@ -2,10 +2,12 @@ package com.hibiscusmc.hmccosmetics.config.serializer; import com.hibiscusmc.hmccosmetics.HMCCosmeticsPlugin; import com.hibiscusmc.hmccosmetics.hooks.items.ItemHooks; +import com.hibiscusmc.hmccosmetics.util.MessagesUtil; import com.hibiscusmc.hmccosmetics.util.ServerUtils; import com.hibiscusmc.hmccosmetics.util.builder.ColorBuilder; import com.hibiscusmc.hmccosmetics.util.misc.StringUtils; import com.hibiscusmc.hmccosmetics.util.misc.Utils; +import org.apache.commons.lang3.EnumUtils; import org.bukkit.Bukkit; import org.bukkit.Color; import org.bukkit.Material; @@ -81,15 +83,16 @@ public class ItemSerializer implements TypeSerializer { ItemMeta itemMeta = item.getItemMeta(); if (itemMeta == null) return item; - if (!nameNode.virtual()) itemMeta.setDisplayName(StringUtils.parseStringToString(Utils.replaceIfNull(nameNode.getString(), ""))); + if (!nameNode.virtual()) + itemMeta.setDisplayName(StringUtils.parseStringToString(Utils.replaceIfNull(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(Utils.replaceIfNull(loreNode.getList(String.class), - new ArrayList()). - stream().map(StringUtils::parseStringToString).collect(Collectors.toList())); + new ArrayList()). + stream().map(StringUtils::parseStringToString).collect(Collectors.toList())); if (!modelDataNode.virtual()) itemMeta.setCustomModelData(modelDataNode.getInt()); if (!nbtNode.virtual()) { @@ -105,11 +108,16 @@ public class ItemSerializer implements TypeSerializer { } } - if (!itemFlagsNode.virtual()) { - for (ConfigurationNode flagNode : itemFlagsNode.childrenMap().values()) { - if (ItemFlag.valueOf(flagNode.key().toString()) == null) continue; - itemMeta.addItemFlags(ItemFlag.valueOf(flagNode.key().toString())); + try { + if (!itemFlagsNode.virtual()) { + for (String itemFlag : itemFlagsNode.getList(String.class)) { + if (!EnumUtils.isValidEnum(ItemFlag.class, itemFlag)) continue; + MessagesUtil.sendDebugMessages("Added " + itemFlag + " to the item!"); + itemMeta.addItemFlags(ItemFlag.valueOf(itemFlag)); + } } + } catch (Exception e) { + e.printStackTrace(); } if (item.getType() == Material.PLAYER_HEAD) { @@ -141,7 +149,6 @@ public class ItemSerializer implements TypeSerializer { item.setItemMeta(itemMeta); return item; } - @Override public void serialize(final Type type, @Nullable final ItemStack obj, final ConfigurationNode node) throws SerializationException {