Jump to content

[1.6.4] Including an API that may not exist on the server


lexwebb

Recommended Posts

So i need to include the buildcraft API to be able to transform power in my mod. I can reference and use the API fine in my workspace. But the way its currently implemented, it will not work if buildcraft is not installed. I am aware that i will probably need to use reflection, however i am unsure about how i would go about reflection interfaces that need to be implemented..

 

Does anyone have any example code, or a guide anywhere? I can't seem to find anything on Google.

Link to comment
Share on other sites

1) Check to see if buildcraft is active first.  There's a Forge method for this, I keep forgetting what it's called.

(Reflection can do the same thing, here's one I use because I keep forgetting said Forge method:

try {
Class.forName("com.xcompwiz.mystcraft.api.MystObjects");
} catch(ClassNotFoundException e) {
return;
}

 

2) Check to see that the API has instanciated its values.

Eg. here's what do

if(MystObjects.book_lectern != null) { ... }

 

3) Once both of these pass, then access the API and do API related calls.

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

Awesome, both replies will fulfill all my needs :). I have one question regarding @Optional though. If i am using an API i.e buildcraft power; would i use the api name where the modId is required. For example

 

@Interface(iface = "IPowerEmitter", modid = "BuildCraftAPI|power")

 

This seems to want a ModId, which im not sure if API's use in the same way.

Link to comment
Share on other sites

That seems right. And the "API" is internally still a normal mod.

 

Right.  APIs do not have their own mod ID.  They're simply a package that is part of a mod that is distributed as source code.  You don't even need to include the compiled API when you distribute if you do things right.

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.

Announcements



×
×
  • Create New...

Important Information

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