Jump to content

Custom informational book using NBT 1.7.2


Potato Coded

Recommended Posts

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...?

Link to comment
Share on other sites

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;

    }

}

 

 

 

Link to comment
Share on other sites

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
Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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 ?

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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...

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.