Posted January 27, 201411 yr Currently, I'm using this code to generate my mcmod.info file: package tlhpoe.poe.core; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.ModMetadata; import cpw.mods.fml.common.event.FMLPreInitializationEvent; @Mod(modid = Poe.MOD_ID, name = Poe.MOD_NAME, version = Poe.MOD_VERSION) public class Poe { public static final String MOD_ID = "poe"; public static final String MOD_NAME = "World of Poe"; public static final String MOD_VERSION = "Build 1"; @Instance public Poe instance; @EventHandler public void preInit(FMLPreInitializationEvent e) { generateModInfo(e.getModMetadata()); } private void generateModInfo(ModMetadata m) { m.modId = MOD_ID; m.name = MOD_NAME; m.description = "An extensive RPG mod made by TLHPoE."; m.version = MOD_VERSION; m.credits = "Created by TLHPoE"; m.logoFile = "/assets/poe/logo.png"; m.authorList.add("TLHPoE"); } } Does this still work? Or do I need to create it manually? Kain
January 27, 201411 yr You could create it manually, but here's the problem. You are just creating a method, and it's never even being called. A way I would do this probably not the correct way though is: Create two new classes. One implementing IFMLLoadingPlugin and the other DummyModContainer. FMLLoadingPlugin: package your.package; import java.util.Map; import cpw.mods.fml.relauncher.IFMLLoadingPlugin; public class ExampleFMLLoadingPlugin implements IFMLLoadingPlugin { @Override public String[] getASMTransformerClass() { return null; } @Override public String getModContainerClass() { return ExampleContainer.class.getName(); } @Override public String getSetupClass() { return null; } @Override public void injectData(Map<String, Object> data) { } @Override public String getAccessTransformerClass() { return null; } } Now here is where you create your mcmod.info without actually generating to code, Forge just reads it and puts it into the mods list. >>>> i decided to be nice and filled in all the things you wanted for your mcmod.info <<<< Container [DummyMod] package your.package; import java.util.Arrays; import com.google.common.eventbus.EventBus; import com.google.common.eventbus.Subscribe; import cpw.mods.fml.common.DummyModContainer; import cpw.mods.fml.common.LoadController; import cpw.mods.fml.common.ModMetadata; import cpw.mods.fml.common.event.FMLConstructionEvent; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; public class ExampleContainer extends DummyModContainer { public ExampleContainer() { //Gets ModMetadata super(new ModMetadata()); ModMetadata meta = getMetadata(); //Adds mcmod.info for the mod. meta.modId = "poe"; meta.name = "World of Poe"; meta.version = "Build 1"; meta.credits = "Created by TLHPoE"; meta.authorList = Arrays.asList("TLHPoE"); meta.description = "An extensive RPG mod made by TLHPoE."; meta.url = ""; meta.updateUrl = ""; meta.screenshots = new String[0]; meta.logoFile = "/assets/poe/logo.png"; //You can fill in the Strings that are blank [""] if you want to, but it isn't required. } @Override public boolean registerBus(EventBus bus, LoadController controller) { bus.register(this); return true; } @Subscribe public void modConstruction(FMLConstructionEvent e) { } @Subscribe public void preInit(FMLPreInitializationEvent e) { } @Subscribe public void init(FMLInitializationEvent e) { } @Subscribe public void postInit(FMLPostInitializationEvent e) { } }
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.