Jump to content

[1.10.2] Making a mod "compatibility"


Cesar Codes

Recommended Posts

So, I want to make a library mod, but I don't know how to add the correct items to each mod. One day, I tried using a if() code (using the mod checker class) and my game creashes. I don't know if  there is a way of detecting a mod and adding certain items into the game depending of which mod I put into the game (For example, I put botania and it adds some crystals and things, but when I put EnderIO it doesn't add these items, but it adds some capacitors and machines, but if I put the two mods, it will add the botania and enderIO items).

"I'm that kind of person who is completely new to java but can make a good java program from scratch without any tutorials"

 

I'm Cesar. A beginner coder that has amazing ideas but can't make them real. Also, I ask a lot of questions ;)

Link to comment
Share on other sites

1 minute ago, diesieben07 said:

Do not conditionally register items. Always register all of your items.

But how can I hide some items depending of which mod I use?

"I'm that kind of person who is completely new to java but can make a good java program from scratch without any tutorials"

 

I'm Cesar. A beginner coder that has amazing ideas but can't make them real. Also, I ask a lot of questions ;)

Link to comment
Share on other sites

In addition to what D7 said, if you're interacting with other parts of another mod...

 

You need to do 2 things:

1) Put all of the "I need to reference that other mod" code in a separate class

2) Only load that class inside an if(Loader.isModLoaded("id_of_mod")) check.

eg: https://github.com/Draco18s/ReasonableRealism/blob/master/src/main/java/com/draco18s/farming/FarmingBase.java#L154-L156

(and the code it references: https://github.com/Draco18s/ReasonableRealism/blob/master/src/main/java/com/draco18s/farming/integration/IndustryIntegration.java )

 

If you're dealing with items and blocks, you can use @ObjectHolder annotations to get those items/blocks from the registries (just check that they're not-null before using them, additionally an if(Loader.isModLoaded("id_of_mod")) check could be useful). see: http://mcforge.readthedocs.io/en/latest/concepts/registries/#injecting-registry-values-into-fields

 

For conditionally hiding your items: you control the getSubItems method. Use an if(Loader.isModLoaded("id_of_mod")) check to either add your item(s) to the creative tab, or not. You can also use conditional recipes to control whether your items can be crafted.

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

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.