Posted June 15, 201411 yr I am trying to make a book to my mod filled with information about my mod(recipes, how to obtain items, what items do, etc.) that acts just like a normal written book in the sense that you can click to read it and such. I am trying to create a new book and add NBT data to it, but nothing will work. Can somebody please help me...?
June 15, 201411 yr Author this I what I have so far... the book doesn't seem to do anything when I click it... public class cookie_manual extends ItemEditableBook { public static Item cookie_manual; { setMaxStackSize(64); setUnlocalizedName("cookie_manual"); setTextureName("lethalcookies:cookie_manual"); } private NBTTagList putTableOfContents(NBTTagList bookTagList) { bookTagList.appendTag(new NBTTagString("\n Table of Contents\n" + "\nThrowable cookies" + "\nFood" + "\nBlocks" + "\nItems")); return bookTagList; } public void onUpdate(ItemStack itemStack, World world, Entity entity, int unknownInt, boolean unknownBool) { NBTTagList bookTagList = new NBTTagList(); bookTagList = putTableOfContents(bookTagList); itemStack.setTagInfo("pages", bookTagList); itemStack.setTagInfo("author", new NBTTagString("The Cookie Guru")); itemStack.setTagInfo("title", new NBTTagString("Cookie Manual")); } @SideOnly(Side.CLIENT) public boolean hasEffect(ItemStack par1ItemStack) { return false; } }
June 15, 201411 yr You're going to need to have onItemUse to actually do something on click first. -Mitchellbrine Minecraft can do ANYTHING, it's coded in Java and you got the full power of Java behind you when you code. So nothing is impossible. It may be freaking fucking hard though, but still possible If you create a topic on Modder Support, live by this motto: I don't want your charity, I want your information
June 15, 201411 yr Author You're going to need to have onItemUse to actually do something on click first. the ItemEditableBook it extends already opens the book gui
June 16, 201411 yr Here is what I have in mine, works like a charm. Enjoy. public void processCommand(ICommandSender sender, String[] data) { // Setup Variables EntityPlayer player = (EntityPlayer) sender; // Create the book ItemStack book = new ItemStack(Items.written_book); // Create NBT data and add to the book NBTTagCompound tag = new NBTTagCompound(); NBTTagList bookPages = new NBTTagList(); bookPages.appendTag(new NBTTagString("This book provides instructions on uses for Cloth")); bookPages.appendTag(new NBTTagString("Cloth can be crafted into a Cloth Pouch which is used to craft a Cloth Pack")); bookPages.appendTag(new NBTTagString("Cloth Pouch \n \nPattern: \n \nx x x \nx y x \nx x x \n \nx = Cloth \ny = String")); bookPages.appendTag(new NBTTagString("Cloth can be crafted into a Cloth Pack to increase your storage by 9 slots")); bookPages.appendTag(new NBTTagString("Cloth Pack \n \nPattern: \n \nz x z \nz y z \na b a \n \nx = Iron Ingot \ny = Cloth Pouch \nz = Leather Strip \na = String \nb = Cloth")); bookPages.appendTag(new NBTTagString("The Book 'Leather Uses' contains information on mentioned items. \n \n /DMLEATH")); bookPages.appendTag(new NBTTagString("Cloth has a ton of uses that can be looked up for Minecraft!")); book.setTagInfo("pages", bookPages); book.setTagInfo("author", new NBTTagString("delpi")); book.setTagInfo("title", new NBTTagString("Cloth Uses")); // Give the player the book player.inventory.addItemStackToInventory(book); } [\spoiler] Long time Bukkit & Forge Programmer Happy to try and help
June 16, 201411 yr Thats exactly what i'am looking for but i want to have a custom gui like Mdyo or Mikeemoo did with images of the crafting recipes etc
June 16, 201411 yr Its not my main class. Its in a command class. But that isn't really relevant. I just have it there because I'm using it there. you could hae it in any class. You are just creating an itemstack, adding some data, and giving it to a player (or dropping it into world). Long time Bukkit & Forge Programmer Happy to try and help
June 16, 201411 yr Author I'm not familiar with a command class... how would I add it as a new item that I can craft and such?
June 16, 201411 yr Author how would I set the creative tab and the texture for the item? It's an ItemStack, so I can set those properties to a type ItemStack...
June 16, 201411 yr Take a look at the code I gave you. It is using a standard book as the item. It will use that as the image. If you want to have a different image, you are going to have to make your own item that extends book and use it instead. I see you tried to create and item below called cookiemanual, assuming you want to use that. There are basic tutorials on how to give a texture to your item as well as what tab. Search for them and follow. Long time Bukkit & Forge Programmer Happy to try and help
June 16, 201411 yr Take a look at the code I gave you. It is using a standard book as the item. It will use that as the image. If you want to have a different image, you are going to have to make your own item that extends book and use it instead. I see you tried to create and item below called cookiemanual, assuming you want to use that. There are basic tutorials on how to give a texture to your item as well as what tab. Search for them and follow. So u mean i could use ur Code for learning NBT thingy things and paste it in for example my Main class and then create a new Item that extends the created ItemStack Book ?
June 16, 201411 yr Did you want a custom graphics book? Lets look through answers just for a custom graphic? then create and item in your mod that is a standard minecraft book, then you can give it your own graphic and name using tutorials I mentioned. No need to create your own item class. Everytime you want to give this to someone or drop it, then run code like mine. you could use events or such, up to you. just need custom information in a book, then just create a standard book and populate its info like I did above and then give it. Really depends on what yo uwant to do with your 'book'. Long time Bukkit & Forge Programmer Happy to try and help
June 16, 201411 yr But i could create a New Class for this Book couldn't i ? I want to make this Book craftable and have this Informations stored in it. When i use the onitemrightclick Method it wont open the gui that a written book should have
June 16, 201411 yr Yes you can. Don't need a class to make it craftable. There are other ways to do that with events, but your way would as well. Long time Bukkit & Forge Programmer Happy to try and help
June 16, 201411 yr If its okay i would prefer to send u a pm with my Code because the thingy with the onitemrightclick Method does not work atm and i have to go to bed now ^^
June 17, 201411 yr Author I know how to set the creative tab for an Item... not an ItemStack i use example_item.setcreativetab(tabExample);, but that's for an item. how would i do it for an itemstack?
June 17, 201411 yr Author so I can add NBT data to an ItemStack, but not an Item. so how do I get an Item with my custom NBT data into a creative tab. because when I run: example_item.getItem().setCreativeTab(tabExample);, it gives me a written book, named written book, with nothing in it...
June 17, 201411 yr play around with onUpdate or onCreated. Should be able to make somethign work. Long time Bukkit & Forge Programmer Happy to try and help
June 17, 201411 yr I think you can. For example if on the onupdate method you check to see if the itemstack ahs your marker already. If it doesn't add it. Should work fine. Long time Bukkit & Forge Programmer Happy to try and help
June 17, 201411 yr Didn't say it wasn't, just said it was possible and proposed one method. Long time Bukkit & Forge Programmer Happy to try and help
June 17, 201411 yr I think you can. For example if on the onupdate method you check to see if the itemstack ahs your marker already. If it doesn't add it. Should work fine. And is just ugly. maybe it's ugly but if it helps and if it works who cares ?
June 17, 201411 yr Author I made a sort of "dummy" item and put it in the creative tab, and then I just had it change it's NBT data in the onUpdate() method and that seems to work fine
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.