001 package net.minecraft.item;
002
003 import net.minecraft.entity.player.EntityPlayer;
004 import net.minecraft.nbt.NBTTagCompound;
005 import net.minecraft.nbt.NBTTagList;
006 import net.minecraft.nbt.NBTTagString;
007 import net.minecraft.world.World;
008
009 public 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 var1 = (NBTTagList)par0NBTTagCompound.getTag("pages");
047
048 for (int var2 = 0; var2 < var1.tagCount(); ++var2)
049 {
050 NBTTagString var3 = (NBTTagString)var1.tagAt(var2);
051
052 if (var3.data == null)
053 {
054 return false;
055 }
056
057 if (var3.data.length() > 256)
058 {
059 return false;
060 }
061 }
062
063 return true;
064 }
065 }
066 }