public void onWanded(EntityPlayer player, ItemStack wand) { if(stage != State.IDLE || itemToEnchant.isEmpty() || !itemToEnchant.isItemEnchantable()) return; List<EntityItem> items = world.getEntitiesWithinAABB(EntityItem.class, new AxisAlignedBB(pos.getX() - 2, pos.getY(), pos.getZ() - 2, pos.getX() + 3, pos.getY() + 1, pos.getZ() + 3)); int count = items.size(); if(count > 0 && !world.isRemote) { for(EntityItem entity : items) { ItemStack item = entity.getItem(); if(item.getItem() == Items.ENCHANTED_BOOK) { NBTTagList enchants = ItemEnchantedBook.getEnchantments(item); if(enchants.tagCount() > 0) { NBTTagCompound enchant = enchants.getCompoundTagAt(0); short id = enchant.getShort("id"); if(isEnchantmentValid(Enchantment.getEnchantmentByID(id))) { advanceStage(); return; } } } } } }
ItemStack item = entity.getItem(); if(item.getItem() == Items.ENCHANTED_BOOK) { NBTTagList enchants = ItemEnchantedBook.getEnchantments(item); if(enchants.tagCount() > 0) { NBTTagCompound enchant = enchants.getCompoundTagAt(0);
@Override public boolean apply(@Nullable ItemStack target) { if (target == null || target.isEmpty()) return false; NBTTagList enchantments = target.getItem() == Items.ENCHANTED_BOOK ? ItemEnchantedBook.getEnchantments(target) : target.getEnchantmentTagList(); for (int i = 0; i < enchantments.tagCount(); ++i) { NBTTagCompound tag = enchantments.getCompoundTagAt(i); Enchantment itemEnchant = Enchantment.getEnchantmentByID(tag.getShort("id")); if (itemEnchant == enchantment) return (int) tag.getShort("lvl") >= minLevel; } return false; }
NBTTagList enchants = ItemEnchantedBook.getEnchantments(stack); for(int i = 0; i < enchants.tagCount(); i++) { NBTTagCompound cmp = enchants.getCompoundTagAt(i);
@Override public boolean matches(InventoryCrafting inv, World world) { if (super.matches(inv, world)) { NBTTagList enchantments = ItemEnchantedBook.getEnchantments(inv.getStackInSlot(1)); for (int i = 0; i < enchantments.tagCount(); ++i) { NBTTagCompound enchantmentNbt = enchantments.getCompoundTagAt(i); // @Volatile: NBT tags from ItemEnchantedBook if (Enchantment.getEnchantmentByID(enchantmentNbt.getShort("id")) == enchant.enchantment && enchantmentNbt.getShort("lvl") == enchant.enchantmentLevel) { return true; } } } return false; } }
subtypeRegistry.registerSubtypeInterpreter(Items.ENCHANTED_BOOK, itemStack -> { List<String> enchantmentNames = new ArrayList<>(); NBTTagList enchantments = ItemEnchantedBook.getEnchantments(itemStack); for (NBTBase nbt : enchantments) { if (nbt instanceof NBTTagCompound) {
flag = itemstack2.getItem() == Items.ENCHANTED_BOOK && !ItemEnchantedBook.getEnchantments(itemstack2).hasNoTags();