Jump to content

[1.12] Add custom nbt tags to vanilla mobs.


_Bedrockbreaker_

Recommended Posts

I have an item named cat hair that is supposed to drop from shearing cats. The subscibe event recognizes correctly when I have right clicked an ocelot with shears, but I want a timer on each sheared cat (like the sheep) in order for the player to be able to shear the cat again. How would I be able to add an nbt tag to each cat to do this? Also, as side questions, how could I figure out if the cat was tamed, make the cat not sit/stand when clicked, and change the model to a hairless cat when sheared.

Professional Hot Garbage Programmer.

https://github.com/Bedrockbreaker/

Link to comment
Share on other sites

1 hour ago, _Bedrockbreaker_ said:

How would I be able to add an nbt tag to each cat to do this?

Use a Entity Capability see here

1 hour ago, _Bedrockbreaker_ said:

how could I figure out if the cat was tamed

EntityOcelot.isTamed()

1 hour ago, _Bedrockbreaker_ said:

make the cat not sit/stand when clicked

Just cancel the event.

1 hour ago, _Bedrockbreaker_ said:

change the model to a hairless cat when sheared.

Subscribe to the RenderLivingEvent(s) cancel the Pre event and Render your new Model in the Post event. At least I believe that is the way to do it.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

  • 3 weeks later...

Sorry for small bump, but I can't for the life of me figure out how to use capabilities. I have looked through the documentation several times and searched up others' tutorials and I am at a loss.. any help? 

Relevant capability files:

https://github.com/Bedrockbreaker/rtap/tree/master/java/com/bedrock/rtap/capabilities

https://github.com/Bedrockbreaker/rtap/blob/master/java/com/bedrock/rtap/init/ModCapabilities.java

Professional Hot Garbage Programmer.

https://github.com/Bedrockbreaker/

Link to comment
Share on other sites

You still need to attach the capability to the entity

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.

Link to comment
Share on other sites

You need to call CapabilityManager#register in a method called in preInit, you can't call it in a field initialiser because it returns void.

 

The Class object you pass as the first argument of CapabilityManager#register (IShave.class) is the same Class object you need to pass to the @CapabilityInject annotation to inject the Capability instance into a field.

 

You need to attach a provider for your capability to the entity using AttachCapabilitiesEvent<Entity>.

 

I have several examples of capabilities in my mod. You can see the APIs here and the implementations here.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

Okay, from you say, It seems the capability seems to look fine (really, you didn't say anything about the capability itself, besides implementing it, so I assume nothing wrong there.) It looks like I did forget to put the CapabilityManager in a method, but it still gives me an error of register cannot be resolved or is not a field. I looked through the examples you provided Choonster, and tried to look at what you are doing, but it doesn't seem you have anything for the "factory" part of register and I don't quite know what to put there.

Professional Hot Garbage Programmer.

https://github.com/Bedrockbreaker/

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.



×
×
  • Create New...

Important Information

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