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 }