Jump to content

Recommended Posts

Posted

I have run into a situation with my server that requires certain mods load before others.  To handle this, I usually rename my mods to 0<modname>, 1<modname>, etc..  this enables me to control load order and resolves many conflicts and issues I have run into.  I tried to handle this in a sensible way first by creating folders in mods called mods/0, mods/1, etc..  This did not work as when FML is looking for mods to load it hits the /0 or /1 and looks for a class file to load.  It doesn't seem to care that I have 3-4 mods in that folder. 

 

Is it possible to get FML to recognize at least the first level of nesting?  This would enable me to have a set of folders, 0-3, that could handle the ordering without going through the trouble of renaming.  This issue is very visible when using forestry and also the plugin pluginsForForestry with extraBees.  extraBees tries to load first and freaks out.  By using the numbered prefix, I can get all my mods to load without issue, but using a structured folder setup would be cleaner.

 

My server is run on a Mac.  OS X Lion.

 

Thanks,

~b

Posted

unfortunately, this forum is the wrong place for an FML suggestion

 

while forge comes bundled with FML, FML itself is not part of forge, and is depeloped seperately

Being noobish since 96, being dumb since birth!

Posted

unfortunately, this forum is the wrong place for an FML suggestion

 

while forge comes bundled with FML, FML itself is not part of forge, and is depeloped seperately

actually FML is bundled with forge, FML is the modloader it is based on and forge just adds new hooks and things for modders to use to extra compatiblise mods and to add extra features to mods

Posted

I found the github for FML and had a chat with Cpw and Pahimar.  They would rather that the mod developers use the dependencies correctly and not try to correct for those that are not doing so.  This request will not be implemented.  Oh well.

Posted

If you have 2 mods, and mod2 depends on mod1, maybe you can do this:

While loading mod2, checking for mod1, as you did now. If mod1 does not exist, set a trigger like "interface Mod1Requester".

While loading mod1, checking for mod2. If mod2 exists already, checking for certain trigger. If the trigger exists, call it like "((Mod1Requester) mod2).hereComesMod1()".

Posted

There is a feature built into FML called getRequirements that consists of a string that tells FML when to load your mod.  If the mod authors use this string correctly then the order is handled by FML.  If not, then it resorts to alphabetical.  To handle the situation right now, I just prefix all of the mods I am loading with a number.  This forces them to load in the correct order if being done by alpha.

 

Prime example is the mod for forestry Extra Bees.  This one does not correctly depend on Forestry, so I have to force it to load last so that forestry gets in there and gets all set up before extra bees does.  Otherwise I get an error with a 'class not found' looking for forestry.

 

 

Posted

For note, the requirements that he listed above for FML is insanely more powerful in Forge/FML for MC 1.3 as it will even change classloading itself to depend on that as well, basically fixing all possible linking issues, as long as the mods use that properly.

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.