Jump to content

I want to add an API to my mod, anything in particular I should know?


Recommended Posts

It really depends on how you want it to work.  For example, if your mod did special rendering to "vampire" entities then you could make an IVampire interface and expose it as an API.  then anyone that wanted your mod to treat their entity as a "vampire" could have their entity class implement IVampire.


But you could also do it other ways, like you could have the special rendering method (or even whole class) in your API and other mods could call those methods, or extend your class.


You could try to get other mods to implement methods that you could call.  In that case you would make a Java interface with those methods, and put that in the API.  For example if you wanted to be able to check the "magicka" level of all entities, then you could have a getMagicka() method in the Java interface and you could hope that other modders would implement it so you could check magicka in their custom entities.


Maybe you want other mods to be able to use your blocks, items or entities.  In that case you could put a placeBlock(), a createItem() and a spawnEntity() method in your API.  Other people then could call those from their code and then use your stuff in their mods.


There are a lot of possibilities, and multiple ways to implement an API.  Do you have a specific idea on what you want to do?

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Link to comment
Share on other sites

Sorry for the incredibly vague request. What my mod will doing is iterating through the item registry, the oredict registry and the recipes and saving them to an SQLite database. It will be a tool to help adding mod support to my Resource Calculator. However some mods have special crafting systems like Thaumcraft and Botania so addons to my mod will need to provide a service to process those.


Now what I'd like to know it how should those addons register themselves with my mod? The simplest way is a singleton but my mod would end up having several singletons and while I think singletons are okay when used sparingly, 5 or 6 of them is too many. I was thinking of using Java's ServiceLoader class to find classes that inherit an abstract class and do dependency injection.

I like trains.

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.

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.