package net.minecraft.item; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import java.util.List; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.StatCollector; import net.minecraft.util.StringUtils; import net.minecraft.world.World; public class ItemEditableBook extends Item { private static final String __OBFID = "CL_00000077"; public ItemEditableBook() { this.setMaxStackSize(1); } public static boolean validBookTagContents(NBTTagCompound p_77828_0_) { if (!ItemWritableBook.validBookPageTagContents(p_77828_0_)) { return false; } else if (!p_77828_0_.hasKey("title", 8)) { return false; } else { String s = p_77828_0_.getString("title"); return s != null && s.length() <= 16 ? p_77828_0_.hasKey("author", 8) : false; } } public String getItemStackDisplayName(ItemStack p_77653_1_) { if (p_77653_1_.hasTagCompound()) { NBTTagCompound nbttagcompound = p_77653_1_.getTagCompound(); String s = nbttagcompound.getString("title"); if (!StringUtils.isNullOrEmpty(s)) { return s; } } return super.getItemStackDisplayName(p_77653_1_); } /** * allows items to add custom lines of information to the mouseover description */ @SideOnly(Side.CLIENT) public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List p_77624_3_, boolean p_77624_4_) { if (p_77624_1_.hasTagCompound()) { NBTTagCompound nbttagcompound = p_77624_1_.getTagCompound(); String s = nbttagcompound.getString("author"); if (!StringUtils.isNullOrEmpty(s)) { p_77624_3_.add(EnumChatFormatting.GRAY + StatCollector.translateToLocalFormatted("book.byAuthor", new Object[] {s})); } } } /** * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer */ public ItemStack onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer player) { player.displayGUIBook(itemStackIn); return itemStackIn; } /** * If this function returns true (or the item is damageable), the ItemStack's NBT tag will be sent to the client. */ public boolean getShareTag() { return true; } @SideOnly(Side.CLIENT) public boolean hasEffect(ItemStack p_77636_1_) { return true; } }