public static boolean hasMeta(ItemStack stack, String tag) { if (NMSUtils.isEmpty(stack)) return false; return getNode(stack, tag) != null; }
public static void setMeta(ItemStack stack, String tag, String value) { if (NMSUtils.isEmpty(stack)) return; try { Object craft = getHandle(stack); if (craft == null) return; Object tagObject = getTag(craft); if (tagObject == null) return; class_NBTTagCompound_setStringMethod.invoke(tagObject, tag, value); } catch (Throwable ex) { ex.printStackTrace(); } }
public static void hideFlags(ItemStack stack, byte flags) { if (NMSUtils.isEmpty(stack)) return; try { Object craft = getHandle(stack); if (craft == null) return; Object tagObject = getTag(craft); if (tagObject == null) return; Object hideFlag = null; hideFlag = class_NBTTagByte_constructor.newInstance(flags); class_NBTTagCompound_setMethod.invoke(tagObject, "HideFlags", hideFlag); } catch (Throwable ex) { ex.printStackTrace(); } }
public static void makeUnbreakable(ItemStack stack) { if (NMSUtils.isEmpty(stack)) return; try { Object craft = getHandle(stack); if (craft == null) return; Object tagObject = getTag(craft); if (tagObject == null) return; Object unbreakableFlag = null; unbreakableFlag = class_NBTTagByte_constructor.newInstance((byte) 1); class_NBTTagCompound_setMethod.invoke(tagObject, "Unbreakable", unbreakableFlag); } catch (Throwable ex) { ex.printStackTrace(); } }
public static Object getNode(ItemStack stack, String tag) { if (NMSUtils.isEmpty(stack)) return null; Object meta = null; try { Object craft = getHandle(stack); if (craft == null) return null; Object tagObject = getTag(craft); if (tagObject == null) return null; meta = class_NBTTagCompound_getMethod.invoke(tagObject, tag); } catch (Throwable ex) { ex.printStackTrace(); } return meta; }
public static String getMetaString(ItemStack stack, String tag) { if (NMSUtils.isEmpty(stack)) return null; String meta = null; try { Object craft = getHandle(stack); if (craft == null) return null; Object tagObject = getTag(craft); if (tagObject == null) return null; meta = (String)class_NBTTagCompound_getStringMethod.invoke(tagObject, tag); } catch (Throwable ex) { ex.printStackTrace(); } return meta; }
public static boolean setMetaNode(ItemStack stack, String tag, Object child) { if (NMSUtils.isEmpty(stack)) return false; try { Object craft = getHandle(stack); if (craft == null) return false; Object node = getTag(craft); if (node == null) return false; if (child == null) { class_NBTTagCompound_removeMethod.invoke(node, tag); } else { class_NBTTagCompound_setMethod.invoke(node, tag, child); } } catch (Throwable ex) { ex.printStackTrace(); return false; } return true; }
public static Object createNode(ItemStack stack, String tag) { if (NMSUtils.isEmpty(stack)) return null; Object outputObject = getNode(stack, tag); if (outputObject == null) { try { Object craft = getHandle(stack); if (craft == null) return null; Object tagObject = getTag(craft); if (tagObject == null) { tagObject = class_NBTTagCompound_constructor.newInstance(); class_ItemStack_tagField.set(craft, tagObject); } outputObject = class_NBTTagCompound_constructor.newInstance(); class_NBTTagCompound_setMethod.invoke(tagObject, tag, outputObject); } catch (Throwable ex) { ex.printStackTrace(); } } return outputObject; }
public static void addGlow(ItemStack stack) { if (NMSUtils.isEmpty(stack)) return; try { ItemMeta meta = stack.getItemMeta(); meta.addEnchant(Enchantment.LUCK, 1, true); stack.setItemMeta(meta); } catch (Throwable ex) { ex.printStackTrace(); } }
public static void setMetaInt(ItemStack stack, String tag, int value) { if (NMSUtils.isEmpty(stack)) return; try { Object craft = getHandle(stack); if (craft == null) return; Object tagObject = getTag(craft); if (tagObject == null) return; setMetaInt(tagObject, tag, value); } catch (Throwable ex) { ex.printStackTrace(); } }
public static void removeMeta(ItemStack stack, String tag) { if (NMSUtils.isEmpty(stack)) return; try { Object craft = getHandle(stack); if (craft == null) return; Object tagObject = getTag(craft); if (tagObject == null) return; removeMeta(tagObject, tag); } catch (Throwable ex) { ex.printStackTrace(); } }
public static void setMetaBoolean(ItemStack stack, String tag, boolean value) { if (NMSUtils.isEmpty(stack)) return; try { Object craft = getHandle(stack); if (craft == null) return; Object tagObject = getTag(craft); if (tagObject == null) return; setMetaBoolean(tagObject, tag, value); } catch (Throwable ex) { ex.printStackTrace(); } }
public static boolean isUnbreakable(ItemStack stack) { if (NMSUtils.isEmpty(stack)) return false; Boolean unbreakableFlag = null; try { Object craft = getHandle(stack); if (craft == null) return false; Object tagObject = getTag(craft); if (tagObject == null) return false; unbreakableFlag = getMetaBoolean(tagObject, "Unbreakable"); } catch (Throwable ex) { ex.printStackTrace(); } return unbreakableFlag != null && unbreakableFlag; }
public static int getMetaInt(ItemStack stack, String tag, int defaultValue) { if (NMSUtils.isEmpty(stack)) return defaultValue; int result = defaultValue; try { Object craft = getHandle(stack); if (craft == null) return defaultValue; Object tagObject = getTag(craft); if (tagObject == null) return defaultValue; Integer value = getMetaInt(tagObject, tag); result = value == null ? defaultValue : value; } catch (Throwable ex) { ex.printStackTrace(); } return result; }
public static boolean getMetaBoolean(ItemStack stack, String tag, boolean defaultValue) { if (NMSUtils.isEmpty(stack)) return defaultValue; boolean result = defaultValue; try { Object craft = getHandle(stack); if (craft == null) return defaultValue; Object tagObject = getTag(craft); if (tagObject == null) return defaultValue; Boolean value = getMetaBoolean(tagObject, tag); result = value == null ? defaultValue : value; } catch (Throwable ex) { ex.printStackTrace(); } return result; }
public static void removeGlow(ItemStack stack) { if (NMSUtils.isEmpty(stack)) return; try { ItemMeta meta = stack.getItemMeta(); if (meta.hasEnchant(Enchantment.LUCK)) { meta.removeEnchant(Enchantment.LUCK); stack.setItemMeta(meta); } } catch (Throwable ex) { ex.printStackTrace(); } }