/** * Create a GlowMetaItem, copying from another if possible. * * @param meta The meta to copy from, or null. */ public GlowMetaItem(ItemMeta meta) { if (meta == null) { return; } displayName = meta.getDisplayName(); if (meta.hasLore()) { lore = new ArrayList<>(meta.getLore()); } if (meta.hasEnchants()) { enchants = new HashMap<>(meta.getEnchants()); } if (meta instanceof GlowMetaItem) { hideFlag = ((GlowMetaItem) meta).hideFlag; } else { for (ItemFlag flag : meta.getItemFlags()) { addItemFlags(flag); } } }
@Override public Set<MCItemFlag> getItemFlags() { Set<ItemFlag> flags = im.getItemFlags(); Set<MCItemFlag> ret = new HashSet<>(flags.size()); for(ItemFlag flag : flags) { ret.add(MCItemFlag.valueOf(flag.name())); } return ret; }
if (isNullOrEmpty(meta.getItemFlags())) {
public boolean onItemRemoveFlag(Player player, ItemStack item, String flagName) { ItemFlag flag = null; ItemMeta itemMeta = item.getItemMeta(); if (flagName == null) { Set<ItemFlag> flags = itemMeta.getItemFlags(); if (flags == null || flags.size() == 0) { player.sendMessage(api.getMessages().get("item.no_flags")); return true; } flag = flags.iterator().next(); } else { try { flag = ItemFlag.valueOf(flagName.toUpperCase()); } catch (Exception ex) { player.sendMessage(ChatColor.RED + "Invalid flag: " + ChatColor.WHITE + flagName); return true; } } if (!itemMeta.hasItemFlag(flag)) { player.sendMessage(api.getMessages().get("item.no_flag").replace("$flag", flag.name())); } else { itemMeta.removeItemFlags(flag); item.setItemMeta(itemMeta); player.sendMessage(api.getMessages().get("item.flag_removed").replace("$flag", flag.name())); } return true; }
meta.setUnbreakable(false); meta.removeItemFlags(meta.getItemFlags().toArray(new ItemFlag[0]));