Jump to content

Helper APIs


geevCookie

Recommended Posts

Oh Hai! As you may or may not have noticed, this is my first post. I've been a long time player and now I would like to try adding to the fantastic modding community. I can't wait to get my first mod out there and have created some basic test mods.

 

One thing I noticed during my experimentation is that there is quite a lot of boilerplate code. I am a full time developer and am aware that with many languages and frameworks some dedicated and awesome people have done some work to get rid of such boilerplate. Sadly my "noobishness" with MC mod development means I find it hard to find the works created by previously mentioned awesome people.

 

What I would like to know is what API/Libraries you recommend that might help with my entry into this unknown world of MC mod development? I am already aware of CoFHLib which can help with stuff like RF, Fluids, and Inventory. Are there any others? Would be great if there are libraries that make things like pipes and general item transport a bit easier.

 

Your help is much appreciated.  :)

 

EDIT: Just to clarify, I aware there are quite a lot of libraries out there, but all of them are accompanied with text similar to "This contains shared code I use for all my other mods". Just wondering if there are general, non mod specific helper libraries. :)

Link to comment
Share on other sites

Any specific function you are looking for, if so please post it, and if it is an inventory API Minecraft more or less already has one built in. In stuff like ISidedInventory and IInventory. Those interfaces include methods like isItemValidforSlot() or canExtract().

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

If there are 'helper apis' that are worth using then they are in Forge.

90% of the time those 'helpers' are 1 like wrappers, in which case there is no reason to use it.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Link to comment
Share on other sites

I guess the lazy developer in me was hoping there was something like a few base classes, e.g. Pipe which I could just extend and add/modify the functionality (e.g. Look, Speed, Compatible Blocks) and boom!!! a new pipe. :P But again, maybe there is something like that and me being a "noob" means I am just overlooking it.

 

Thus far I have done some basic vanilla things like create a block, create an item, and create food. I think maybe I should just take a deeper dive into things such as item transport (Maybe look at how BC and EnderIO do it) and then go from there. I have a suspicion that my understanding of these things is still lacking way too much.

 

Thanks for the super fast replies. Will definitely come back with more questions after some further research and experimentation.

Link to comment
Share on other sites

LoL. Didn't want to be completely spoon fed quite to that level, but just a little help for a beginner. :) Not the easiest thing to get into...

 

Maybe it's not the worst thing ever to have something like that. Not intended to make it easier for people to create their re-skinned mods, but instead to make it easier for them to see how it works.

 

I can't be the only one that would like to have a class like that, create my item, see how it works in game (the proper way without creating lag), edit the code, see how my changes affected it, have the inevitable "Aha!!!" moment, and then create own class that in my mind is better. Quite surprised this doesn't exist to be honest.

 

Sure you can make the argument of "why not just do that level of experimentation with existing mods" and the simple answer is that they are quite cluttered and its easy to get lost in all the existing mod integrations etc.

Link to comment
Share on other sites

TL;DR: No one is going to provide you with copy/paste code solutions.

I will provide my client proxy class that I'm using as it wraps several Forge class down into 1 so that it looks more like the 1.7.10 method (create item, call proxy.register for it) of registering items/blocks rather than four duplicated lines for every single one (create item, set registry name, set unlocalized name, call GameRegistry.register for it, call proxy.registerRenderer).

 

https://github.com/Draco18s/ReasonableRealism/blob/master/src/main/java/com/draco18s/ores/client/ClientProxy.java

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.