001    package net.minecraft.src;
002    
003    public class ItemWritableBook extends Item
004    {
005        public ItemWritableBook(int par1)
006        {
007            super(par1);
008            this.setMaxStackSize(1);
009        }
010    
011        /**
012         * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer
013         */
014        public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
015        {
016            par3EntityPlayer.displayGUIBook(par1ItemStack);
017            return par1ItemStack;
018        }
019    
020        /**
021         * If this function returns true (or the item is damageable), the ItemStack's NBT tag will be sent to the client.
022         */
023        public boolean getShareTag()
024        {
025            return true;
026        }
027    
028        public static boolean validBookTagPages(NBTTagCompound par0NBTTagCompound)
029        {
030            if (par0NBTTagCompound == null)
031            {
032                return false;
033            }
034            else if (!par0NBTTagCompound.hasKey("pages"))
035            {
036                return false;
037            }
038            else
039            {
040                NBTTagList var1 = (NBTTagList)par0NBTTagCompound.getTag("pages");
041    
042                for (int var2 = 0; var2 < var1.tagCount(); ++var2)
043                {
044                    NBTTagString var3 = (NBTTagString)var1.tagAt(var2);
045    
046                    if (var3.data == null)
047                    {
048                        return false;
049                    }
050    
051                    if (var3.data.length() > 256)
052                    {
053                        return false;
054                    }
055                }
056    
057                return true;
058            }
059        }
060    }