use of net.minecraft.server.v1_10_R1.NBTTagCompound in project MyPet by xXKeyleXx.
the class IconMenuInventory method createItemStack.
protected ItemStack createItemStack(IconMenuItem icon) {
ItemStack is = CraftItemStack.asNMSCopy(new org.bukkit.inventory.ItemStack(icon.getMaterial(), icon.getAmount(), (short) icon.getData()));
// TODO allow items like FIRE (51)
if (is == null) {
is = CraftItemStack.asNMSCopy(new org.bukkit.inventory.ItemStack(Material.SAPLING));
}
NBTTagList emptyList = new NBTTagList();
if (is.getTag() == null) {
is.setTag(new NBTTagCompound());
}
if (icon.getBukkitMeta() != null) {
try {
applyToItemMethhod.invoke(icon.getBukkitMeta(), is.getTag());
} catch (InvocationTargetException | IllegalAccessException e) {
e.printStackTrace();
}
}
// remove item attributes like attack damage
is.getTag().set("AttributeModifiers", emptyList);
// add enchantment glowing
if (icon.isGlowing()) {
TagCompound enchTag = new TagCompound();
enchTag.put("id", new TagShort(2));
enchTag.put("lvl", new TagShort(1));
TagList enchList = new TagList();
enchList.addTag(enchTag);
is.getTag().set("ench", ItemStackNBTConverter.compoundToVanillaCompound(enchList));
is.getTag().setInt("HideFlags", 1);
} else {
is.getTag().remove("ench");
}
// Prepare display tag
NBTTagCompound display;
if (is.getTag().hasKey("display")) {
display = is.getTag().getCompound("display");
} else {
display = new NBTTagCompound();
is.getTag().set("display", display);
}
// set Title
if (!icon.getTitle().equals("")) {
display.setString("Name", icon.getTitle());
}
if (icon.getLore().size() > 0) {
// set Lore
NBTTagList loreTag = new NBTTagList();
display.set("Lore", loreTag);
for (String loreLine : icon.getLore()) {
loreTag.add(new NBTTagString(loreLine));
}
}
if (icon.hasMeta()) {
TagCompound tag = new TagCompound();
icon.getMeta().applyTo(tag);
NBTTagCompound vanillaTag = (NBTTagCompound) ItemStackNBTConverter.compoundToVanillaCompound(tag);
for (String key : vanillaTag.c()) {
is.getTag().set(key, vanillaTag.get(key));
}
}
if (icon.getTags() != null) {
NBTTagCompound vanillaTag = (NBTTagCompound) ItemStackNBTConverter.compoundToVanillaCompound(icon.getTags());
for (String key : vanillaTag.c()) {
is.getTag().set(key, vanillaTag.get(key));
}
}
return is;
}
use of net.minecraft.server.v1_10_R1.NBTTagCompound in project MyPet by xXKeyleXx.
the class IconMenuInventory method createItemStack.
protected ItemStack createItemStack(IconMenuItem icon) {
ItemStack is = CraftItemStack.asNMSCopy(new org.bukkit.inventory.ItemStack(icon.getMaterial(), icon.getAmount(), (short) icon.getData()));
// TODO allow items like FIRE (51)
if (is == null) {
is = CraftItemStack.asNMSCopy(new org.bukkit.inventory.ItemStack(Material.SAPLING));
}
NBTTagList emptyList = new NBTTagList();
if (is.getTag() == null) {
is.setTag(new NBTTagCompound());
}
if (icon.getBukkitMeta() != null) {
try {
applyToItemMethhod.invoke(icon.getBukkitMeta(), is.getTag());
} catch (InvocationTargetException | IllegalAccessException e) {
e.printStackTrace();
}
}
// remove item attributes like attack damage
is.getTag().set("AttributeModifiers", emptyList);
// add enchantment glowing
if (icon.isGlowing()) {
is.getTag().set("ench", emptyList);
} else {
is.getTag().remove("ench");
}
// Prepare display tag
NBTTagCompound display;
if (is.getTag().hasKey("display")) {
display = is.getTag().getCompound("display");
} else {
display = new NBTTagCompound();
is.getTag().set("display", display);
}
// set Title
if (!icon.getTitle().equals("")) {
display.setString("Name", icon.getTitle());
}
if (icon.getLore().size() > 0) {
// set Lore
NBTTagList loreTag = new NBTTagList();
display.set("Lore", loreTag);
for (String loreLine : icon.getLore()) {
loreTag.add(new NBTTagString(loreLine));
}
}
if (icon.hasMeta()) {
TagCompound tag = new TagCompound();
icon.getMeta().applyTo(tag);
NBTTagCompound vanillaTag = (NBTTagCompound) ItemStackNBTConverter.compoundToVanillaCompound(tag);
for (String key : vanillaTag.c()) {
is.getTag().set(key, vanillaTag.get(key));
}
}
if (icon.getTags() != null) {
NBTTagCompound vanillaTag = (NBTTagCompound) ItemStackNBTConverter.compoundToVanillaCompound(icon.getTags());
for (String key : vanillaTag.c()) {
is.getTag().set(key, vanillaTag.get(key));
}
}
return is;
}
use of net.minecraft.server.v1_10_R1.NBTTagCompound in project MyPet by xXKeyleXx.
the class ItemStackComparator method compareTagData.
public static boolean compareTagData(ItemStack i1, ItemStack i2) {
if (i1.hasItemMeta() && i2.hasItemMeta()) {
NBTTagCompound tag1 = CraftItemStack.asNMSCopy(i1).getTag();
NBTTagCompound tag2 = CraftItemStack.asNMSCopy(i2).getTag();
return tag1 != null && tag2 != null && tag1.equals(tag2);
}
return i1.hasItemMeta() == i2.hasItemMeta();
}
use of net.minecraft.server.v1_10_R1.NBTTagCompound in project solinia3-core by mixxit.
the class ItemStackAdapter method Adapt.
public static ItemStack Adapt(ISoliniaItem soliniaItem) {
ItemStack stack = new ItemStack(Material.valueOf(soliniaItem.getBasename().toUpperCase()), 1, soliniaItem.getColor());
if (soliniaItem.getDamage() > 0) {
if (soliniaItem.getBasename().equals("WOOD_SWORD") || soliniaItem.getBasename().equals("STONE_SWORD") || soliniaItem.getBasename().equals("IRON_SWORD") || soliniaItem.getBasename().equals("GOLD_SWORD") || soliniaItem.getBasename().equals("DIAMOND_SWORD") || soliniaItem.getBasename().equals("WOOD_AXE") || soliniaItem.getBasename().equals("STONE_AXE") || soliniaItem.getBasename().equals("IRON_AXE") || soliniaItem.getBasename().equals("GOLD_AXE") || soliniaItem.getBasename().equals("DIAMOND_AXE") || soliniaItem.getBasename().equals("WOOD_SPADE") || soliniaItem.getBasename().equals("STONE_SPADE") || soliniaItem.getBasename().equals("IRON_SPADE") || soliniaItem.getBasename().equals("GOLD_SPADE") || soliniaItem.getBasename().equals("DIAMOND_SPADE")) {
net.minecraft.server.v1_12_R1.ItemStack nmsStack = CraftItemStack.asNMSCopy(stack);
NBTTagCompound compound = (nmsStack.hasTag()) ? nmsStack.getTag() : new NBTTagCompound();
NBTTagList modifiers = new NBTTagList();
NBTTagCompound damagecompound = new NBTTagCompound();
damagecompound.set("AttributeName", new NBTTagString("generic.attackDamage"));
damagecompound.set("Name", new NBTTagString("generic.attackDamage"));
damagecompound.set("Amount", new NBTTagInt(soliniaItem.getDamage()));
damagecompound.set("Operation", new NBTTagInt(0));
damagecompound.set("UUIDLeast", new NBTTagInt(894654));
damagecompound.set("UUIDMost", new NBTTagInt(2872));
damagecompound.set("Slot", new NBTTagString("mainhand"));
modifiers.add(damagecompound);
compound.set("AttributeModifiers", modifiers);
nmsStack.setTag(compound);
stack = CraftItemStack.asBukkitCopy(nmsStack);
}
}
ItemMeta i = stack.getItemMeta();
if (soliniaItem.getBasename().equals("POTION") || soliniaItem.getBasename().equals("SPLASH_POTION") || soliniaItem.getBasename().equals("LINGERING_POTION")) {
i = (PotionMeta) stack.getItemMeta();
PotionData data = new PotionData(PotionType.INSTANT_HEAL);
((PotionMeta) i).setBasePotionData(data);
}
if (soliniaItem.getTexturebase64() != null && !soliniaItem.getTexturebase64().equals("") && soliniaItem.getBasename().equals("SKULL_ITEM")) {
UUID skinuuid = getUUIDFromString(soliniaItem.getTexturebase64());
i = buildSkull((SkullMeta) i, skinuuid, soliniaItem.getTexturebase64(), null);
}
i.setUnbreakable(true);
i.setDisplayName(soliniaItem.getDisplayname());
List<String> loretxt = new ArrayList<String>();
if (soliniaItem.getLore() != null) {
String[] lorestr = soliniaItem.getLore().split("(?<=\\G.{34})");
loretxt.addAll(Arrays.asList(lorestr));
}
if (soliniaItem.isArtifact() == true) {
loretxt.add(ChatColor.GREEN + "This item is a unique artifact!" + ChatColor.RESET);
}
if (soliniaItem.isQuest() == true) {
loretxt.add(ChatColor.YELLOW + "This item is part of a quest line" + ChatColor.RESET);
}
if (soliniaItem.isCrafting() == true) {
loretxt.add(ChatColor.GOLD + "This looks like it could be crafted" + ChatColor.RESET);
loretxt.add(ChatColor.GOLD + "into something useful" + ChatColor.RESET);
}
if (soliniaItem.isExperienceBonus() == true) {
loretxt.add(ChatColor.GOLD + "Grant XP Experience!" + ChatColor.RESET);
}
if (soliniaItem.isFingersItem()) {
loretxt.add(ChatColor.AQUA + "/EQUIP : FINGERS" + ChatColor.RESET);
}
if (soliniaItem.isNeckItem()) {
loretxt.add(ChatColor.AQUA + "/EQUIP : NECK" + ChatColor.RESET);
}
if (soliniaItem.isShouldersItem()) {
loretxt.add(ChatColor.AQUA + "/EQUIP : SHOULDERS" + ChatColor.RESET);
}
if (soliniaItem.isAugmentation() == true) {
loretxt.add(ChatColor.AQUA + "This looks like it could augment " + ChatColor.RESET);
loretxt.add(ChatColor.AQUA + "weapon or armour" + ChatColor.RESET);
loretxt.add(ChatColor.AQUA + "Augments Item Slots: " + soliniaItem.getAugmentationFitsSlotType().name() + ChatColor.RESET);
}
if (soliniaItem.getDamage() > 0) {
if (soliniaItem.getBasename().equals("BOW")) {
loretxt.add("Modifies Arrow Dmg: " + ChatColor.GREEN + soliniaItem.getDamage() + ChatColor.RESET);
}
}
if (soliniaItem.getBaneUndead() > 0) {
loretxt.add("Bane UNDEAD: " + ChatColor.GREEN + soliniaItem.getBaneUndead() + ChatColor.RESET);
}
if (soliniaItem.getAC() > 0) {
loretxt.add("Armour Class: " + ChatColor.GREEN + soliniaItem.getAC() + ChatColor.RESET);
}
String classtxt = "";
if (soliniaItem.getAllowedClassNames().size() > 0) {
classtxt = "Usable By: ";
for (String classname : soliniaItem.getAllowedClassNames()) {
classtxt += ChatColor.YELLOW + classname + ChatColor.RESET + " ";
}
}
if (!classtxt.equals("")) {
loretxt.add(classtxt);
}
if (soliniaItem.getMinLevel() > 0) {
loretxt.add("Minimum Level: " + ChatColor.YELLOW + soliniaItem.getMinLevel() + ChatColor.RESET);
}
String stattxt = "";
if (soliniaItem.getStrength() > 0) {
stattxt = "STR: " + ChatColor.GREEN + soliniaItem.getStrength() + ChatColor.RESET + " ";
}
if (soliniaItem.getStamina() > 0) {
stattxt += "STA: " + ChatColor.GREEN + soliniaItem.getStamina() + ChatColor.RESET + " ";
}
if (soliniaItem.getAgility() > 0) {
stattxt += "AGI: " + ChatColor.GREEN + soliniaItem.getAgility() + ChatColor.RESET + " ";
}
if (!stattxt.equals("")) {
loretxt.add(stattxt);
}
stattxt = "";
if (soliniaItem.getDexterity() > 0) {
stattxt = "DEX: " + ChatColor.GREEN + soliniaItem.getDexterity() + ChatColor.RESET + " ";
}
if (soliniaItem.getIntelligence() > 0) {
stattxt += "INT: " + ChatColor.GREEN + soliniaItem.getIntelligence() + ChatColor.RESET + " ";
}
if (soliniaItem.getWisdom() > 0) {
stattxt += "WIS: " + ChatColor.GREEN + soliniaItem.getWisdom() + ChatColor.RESET + " ";
}
if (soliniaItem.getCharisma() > 0) {
stattxt += "CHA: " + ChatColor.GREEN + soliniaItem.getCharisma() + ChatColor.RESET + " ";
}
if (!stattxt.equals("")) {
loretxt.add(stattxt);
}
String resisttxt = "";
if (soliniaItem.getFireResist() > 0) {
resisttxt += "FR: " + ChatColor.AQUA + soliniaItem.getFireResist() + ChatColor.RESET + " ";
}
if (soliniaItem.getColdResist() > 0) {
resisttxt += "CR: " + ChatColor.AQUA + soliniaItem.getColdResist() + ChatColor.RESET + " ";
}
if (soliniaItem.getMagicResist() > 0) {
resisttxt += "MR: " + ChatColor.AQUA + soliniaItem.getMagicResist() + ChatColor.RESET + " ";
}
if (soliniaItem.getPoisonResist() > 0) {
resisttxt += "PR: " + ChatColor.AQUA + soliniaItem.getPoisonResist() + ChatColor.RESET + " ";
}
if (!resisttxt.equals("")) {
loretxt.add(resisttxt);
}
String regentxt = "";
if (soliniaItem.getHpregen() > 0 || soliniaItem.getMpregen() > 0) {
if (soliniaItem.getHpregen() > 0) {
regentxt = ChatColor.WHITE + "HPRegen: " + ChatColor.YELLOW + soliniaItem.getHpregen() + ChatColor.RESET;
}
if (soliniaItem.getMpregen() > 0) {
if (!regentxt.equals(""))
regentxt += " ";
regentxt += ChatColor.WHITE + "MPRegen: " + ChatColor.YELLOW + soliniaItem.getMpregen() + ChatColor.RESET;
}
}
if (!(soliniaItem.getSkillModType().equals(SkillType.None))) {
loretxt.add(ChatColor.WHITE + "Modifies skill checks for: " + ChatColor.YELLOW + soliniaItem.getSkillModType().toString() + " +(" + soliniaItem.getSkillModValue() + ")" + ChatColor.RESET);
}
if (!(soliniaItem.getSkillModType2().equals(SkillType.None))) {
loretxt.add(ChatColor.WHITE + "Modifies skill checks for: " + ChatColor.YELLOW + soliniaItem.getSkillModType2().toString() + " +(" + soliniaItem.getSkillModValue2() + ")" + ChatColor.RESET);
}
if (!(soliniaItem.getSkillModType3().equals(SkillType.None))) {
loretxt.add(ChatColor.WHITE + "Modifies skill checks for: " + ChatColor.YELLOW + soliniaItem.getSkillModType3().toString() + " +(" + soliniaItem.getSkillModValue3() + ")" + ChatColor.RESET);
}
if (!(soliniaItem.getSkillModType4().equals(SkillType.None))) {
loretxt.add(ChatColor.WHITE + "Modifies skill checks for: " + ChatColor.YELLOW + soliniaItem.getSkillModType4().toString() + " +(" + soliniaItem.getSkillModValue4() + ")" + ChatColor.RESET);
}
if (!(soliniaItem.getAcceptsAugmentationSlotType().equals(AugmentationSlotType.NONE))) {
loretxt.add(ChatColor.WHITE + "Augmentation Slot Types: " + ChatColor.YELLOW + soliniaItem.getAcceptsAugmentationSlotType().name() + ChatColor.RESET);
}
if (!regentxt.equals("")) {
loretxt.add(regentxt);
}
String hpmanatxt = "";
if (soliniaItem.getHp() > 0 || soliniaItem.getMana() > 0) {
if (soliniaItem.getHp() > 0) {
hpmanatxt = ChatColor.WHITE + "HP: " + ChatColor.YELLOW + soliniaItem.getHp() + ChatColor.RESET;
}
if (soliniaItem.getMana() > 0) {
if (!hpmanatxt.equals(""))
hpmanatxt += " ";
hpmanatxt += ChatColor.WHITE + "Mana: " + ChatColor.YELLOW + soliniaItem.getMana() + ChatColor.RESET;
}
}
if (!hpmanatxt.equals("")) {
loretxt.add(hpmanatxt);
}
if (soliniaItem.getAbilityid() > 0 && soliniaItem.isSpellscroll()) {
loretxt.addAll(generateSpellLoreText(soliniaItem));
}
if (soliniaItem.getAbilityid() > 0 && !soliniaItem.isSpellscroll()) {
loretxt.addAll(generateConsumableAbilityLoreText(soliniaItem));
}
if (soliniaItem.getWeaponabilityid() > 0 && !soliniaItem.isSpellscroll()) {
loretxt.addAll(generateWeaponAbilityLoreText(soliniaItem));
}
loretxt.add("Discovered By: " + soliniaItem.getDiscoverer());
if (soliniaItem.getWorth() > 0) {
loretxt.add(ChatColor.WHITE + "Worth: " + ChatColor.YELLOW + soliniaItem.getWorth() + ChatColor.RESET);
}
if (soliniaItem.isTemporary()) {
loretxt.add("Temporary: " + StateManager.getInstance().getInstanceGuid());
}
i.setLore(loretxt);
stack.setItemMeta(i);
stack.addUnsafeEnchantment(Enchantment.DURABILITY, 1000 + soliniaItem.getId());
if (soliniaItem.getEnchantment1() != null) {
if (soliniaItem.getEnchantment1val() > 0) {
try {
Enchantment enchantment = Utils.getEnchantmentFromEnchantmentName(soliniaItem.getEnchantment1());
stack.addUnsafeEnchantment(enchantment, soliniaItem.getEnchantment1val());
} catch (Exception e) {
System.out.println("WARNING: Invalid Enchantment Item on SoliniaItem: " + soliniaItem.getId());
}
}
}
if (soliniaItem.getEnchantment2() != null) {
if (soliniaItem.getEnchantment2val() > 0) {
try {
Enchantment enchantment = Utils.getEnchantmentFromEnchantmentName(soliniaItem.getEnchantment2());
stack.addUnsafeEnchantment(enchantment, soliniaItem.getEnchantment2val());
} catch (Exception e) {
System.out.println("WARNING: Invalid Enchantment Item on SoliniaItem: " + soliniaItem.getId());
}
}
}
if (soliniaItem.getEnchantment3() != null) {
if (soliniaItem.getEnchantment3val() > 0) {
try {
Enchantment enchantment = Utils.getEnchantmentFromEnchantmentName(soliniaItem.getEnchantment3());
stack.addUnsafeEnchantment(enchantment, soliniaItem.getEnchantment3val());
} catch (Exception e) {
System.out.println("WARNING: Invalid Enchantment Item on SoliniaItem: " + soliniaItem.getId());
}
}
}
if (soliniaItem.getEnchantment4() != null) {
if (soliniaItem.getEnchantment4val() > 0) {
try {
Enchantment enchantment = Utils.getEnchantmentFromEnchantmentName(soliniaItem.getEnchantment4());
stack.addUnsafeEnchantment(enchantment, soliniaItem.getEnchantment4val());
} catch (Exception e) {
System.out.println("WARNING: Invalid Enchantment Item on SoliniaItem: " + soliniaItem.getId());
}
}
}
if (soliniaItem.getTexturebase64() != null && !soliniaItem.getTexturebase64().equals("") && soliniaItem.getBasename().equals("SKULL_ITEM")) {
stack.setDurability((short) 3);
}
return stack;
}
use of net.minecraft.server.v1_10_R1.NBTTagCompound in project solinia3-core by mixxit.
the class SoliniaItem method convertItemStackToJsonRegular.
private String convertItemStackToJsonRegular() {
// First we convert the item stack into an NMS itemstack
net.minecraft.server.v1_12_R1.ItemStack nmsItemStack = CraftItemStack.asNMSCopy(asItemStack());
NBTTagCompound compound = new NBTTagCompound();
compound = nmsItemStack.save(compound);
return compound.toString();
}
Aggregations