Jump to content

Recommended Posts

Posted

Hello I'm making a mod and I have an item that will eventually place a block according to the NBT data of the item. Basically by default the tag currentColor should be 0 at default and every time the player shift right clicks it should place the correct block. The issue that I'm having is that I can't seem to figure out how to add a tag to an item and increase it every time. I would appreciate it if someone could tell be how to add a tag to an item, set the default value, and how to make it increase, or possibly a tutorial giving the basic lines of code needed to do this. I am not asking for anyone to write it for me, I am just asking how to do this. Any help is appreciated.

Don't be afraid to ask question when modding, there are no stupid question! Unless you don't know java then all your questions are stupid!

Posted
        public NBTTagCompound createDefault()
        {
                NBTTagCompound nbt = new NBTTagCompound("tag");
                nbt.setInteger("someStringIdentifier",0);
          }

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted

Hi

 

Important to remember that you'll need to add NBT to the ItemStack not the Item (you know what the difference is, yeah?)

 

For vanilla examples, see ItemStack.setRepairCost(), ItemStack.setItemName, ItemStack.getDisplayName, etc.

 

-TGG

Posted

Sorry, but could you go a bit more into details. I know java but, I don't really understand nbt tags. If I wanted to call this method would I just call this in the onItemUse method and how do I get the current number for this tag and would I just put:

 

nbt.setInteger("currentColorInt",0);

 

if I wanted to change the value. Sorry for asking so many questions, but I have been having trouble understanding the nbt data system because some of the tutorials that I have looked at do not explain it well enough and they are all for tileEntities.

Don't be afraid to ask question when modding, there are no stupid question! Unless you don't know java then all your questions are stupid!

Posted
if I wanted to change the value. Sorry for asking so many questions, but I have been having trouble understanding the nbt data system because some of the tutorials that I have looked at do not explain it well enough and they are all for tileEntities.

 

int someColor = nbt.getInteger("currentColorInt");
someColor++;
nbt.setInteger("currentColorInt",someColor);

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

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.