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