Posted February 2, 201411 yr 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.
February 2, 201411 yr 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.
February 2, 201411 yr Author 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.
February 2, 201411 yr 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.
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.