diff --git a/src/main/src/me/skymc/taboolib/jsonformatter/hover/ShowItemEvent.java b/src/main/src/me/skymc/taboolib/jsonformatter/hover/ShowItemEvent.java index 58f90de..8df60c7 100644 --- a/src/main/src/me/skymc/taboolib/jsonformatter/hover/ShowItemEvent.java +++ b/src/main/src/me/skymc/taboolib/jsonformatter/hover/ShowItemEvent.java @@ -14,41 +14,57 @@ import me.skymc.taboolib.TabooLib; import me.skymc.taboolib.inventory.ItemUtils; import me.skymc.taboolib.json.JSONObject; import me.skymc.taboolib.nms.item.DabItemUtils; +import me.skymc.taboolib.nms.item.IDabItemUtils; public class ShowItemEvent extends HoverEvent{ private JSONObject object = new JSONObject(); + public Object getItemTag(ItemStack item) { + try { + return DabItemUtils.getInstance().getTag(DabItemUtils.getInstance().getNMSCopy(item)); + } catch (Exception e) { + return null; + } + } + @SuppressWarnings("deprecation") public ShowItemEvent(ItemStack is){ try{ object.put("action", "show_item"); - ItemMeta im = is.getItemMeta(); - List lore = im.hasLore() ? im.getLore() : new ArrayList<>(); - Map enchants = is.getItemMeta().getEnchants(); StringBuilder tag = new StringBuilder(); - tag.append(",tag:{display:{Name:" + (enchants.size() > 0 ? "¡ìb¡ìo" : "¡ìf") + ItemUtils.getCustomName(is)); - if (lore.size() > 0) { - tag.append(",Lore:["); - for (String s : lore){ - tag.append("\"" + s + "\","); - } - tag.delete(tag.length() - 1, tag.length()); - tag.append("]"); + Object itemTag = getItemTag(is); + if (itemTag != null) { + tag.append(",tag:" + itemTag); } - tag.append("}"); - if (enchants.size() > 0) { - if(tag.length() > 6) { - tag.append(","); + else { + ItemMeta im = is.getItemMeta(); + List lore = im.hasLore() ? im.getLore() : new ArrayList<>(); + Map enchants = is.getItemMeta().getEnchants(); + tag.append(",tag:{display:{Name:" + (enchants.size() > 0 ? "¡ìb¡ìo" : "¡ìf") + ItemUtils.getCustomName(is)); + if (lore.size() > 0) { + tag.append(",Lore:["); + for (String s : lore){ + tag.append("\"" + s + "\","); + } + tag.delete(tag.length() - 1, tag.length()); + tag.append("]"); } - tag.append("ench:["); - for (Entry e : enchants.entrySet()) { - tag.append("{id:" + e.getKey().getId() + ",lvl:" + e.getValue() + "},"); + tag.append("}"); + if (enchants.size() > 0) { + if(tag.length() > 6) { + tag.append(","); + } + tag.append("ench:["); + for (Entry e : enchants.entrySet()) { + tag.append("{id:" + e.getKey().getId() + ",lvl:" + e.getValue() + "},"); + } + tag.delete(tag.length() - 1, tag.length()); + tag.append("]"); } - tag.delete(tag.length() - 1, tag.length()); - tag.append("]"); + tag.append("}"); } - tag.append("}"); + object.put("value", "{id:" + (TabooLib.getVerint() > 10700 ? DabItemUtils.getMinecraftName(is) : is.getTypeId()) + ",Count:" + is.getAmount() + tag.toString() + "}"); } catch(Exception e) { e.printStackTrace();