package net.minecraft.item; import java.util.Random; import net.minecraft.enchantment.EnchantmentData; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.init.Items; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.util.WeightedRandomChestContent; public class ItemEnchantedBook extends Item { private static final String __OBFID = "CL_00000025"; /** * Checks isDamagable and if it cannot be stacked */ public boolean isItemTool(ItemStack stack) { return false; } /** * Return an item rarity from EnumRarity */ public EnumRarity getRarity(ItemStack stack) { return this.func_92110_g(stack).tagCount() > 0 ? EnumRarity.UNCOMMON : super.getRarity(stack); } public NBTTagList func_92110_g(ItemStack p_92110_1_) { NBTTagCompound var2 = p_92110_1_.getTagCompound(); return var2 != null && var2.hasKey("StoredEnchantments", 9) ? (NBTTagList)var2.getTag("StoredEnchantments") : new NBTTagList(); } /** * Adds an stored enchantment to an enchanted book ItemStack */ public void addEnchantment(ItemStack p_92115_1_, EnchantmentData p_92115_2_) { NBTTagList var3 = this.func_92110_g(p_92115_1_); boolean var4 = true; for (int var5 = 0; var5 < var3.tagCount(); ++var5) { NBTTagCompound var6 = var3.getCompoundTagAt(var5); if (var6.getShort("id") == p_92115_2_.enchantmentobj.effectId) { if (var6.getShort("lvl") < p_92115_2_.enchantmentLevel) { var6.setShort("lvl", (short)p_92115_2_.enchantmentLevel); } var4 = false; break; } } if (var4) { NBTTagCompound var7 = new NBTTagCompound(); var7.setShort("id", (short)p_92115_2_.enchantmentobj.effectId); var7.setShort("lvl", (short)p_92115_2_.enchantmentLevel); var3.appendTag(var7); } if (!p_92115_1_.hasTagCompound()) { p_92115_1_.setTagCompound(new NBTTagCompound()); } p_92115_1_.getTagCompound().setTag("StoredEnchantments", var3); } /** * Returns the ItemStack of an enchanted version of this item. */ public ItemStack getEnchantedItemStack(EnchantmentData p_92111_1_) { ItemStack var2 = new ItemStack(this); this.addEnchantment(var2, p_92111_1_); return var2; } public WeightedRandomChestContent getRandomEnchantedBook(Random p_92114_1_) { return this.func_92112_a(p_92114_1_, 1, 1, 1); } public WeightedRandomChestContent func_92112_a(Random p_92112_1_, int p_92112_2_, int p_92112_3_, int p_92112_4_) { ItemStack var5 = new ItemStack(Items.book, 1, 0); EnchantmentHelper.addRandomEnchantment(p_92112_1_, var5, 30); return new WeightedRandomChestContent(var5, p_92112_2_, p_92112_3_, p_92112_4_); } }