Jump to content

[1.12] how do you check if a mod is loaded?


Recommended Posts

I know how to check if a mod is loaded, Loader.isModLoaded(), but if I want to run code with classes from the mod, I can't if the mod isn't there. 


Here's what I have right now that checks if the mod is loaded:


public static void PostInit(FMLPostInitializationEvent event) {
	simpleRPGLoaded = Loader.isModLoaded("simplerpg");
	info(simpleRPGLoaded ?
			"SimpleRPG's player level will be used as Object Control Authority. This can be disabled in config.":
			"SimpleRPG is not loaded. Minecraft's player level will be used instead.");


and here's where I use it:


EntityPlayerMP p = (EntityPlayerMP)(entity);
int level;
if (ObjectPriorities.simpleRPGLoaded && ConfigFile.general.useSimpleRPG) {
	try {
		IRpgPlayer rpg = (IRpgPlayer) p.getCapability(RpgPlayerProvider.RPG_PLAYER_CAP, (EnumFacing) null);
		level = rpg.getLevel();
	} catch (Error e) {}
} else {
	level = p.experienceLevel;


But it wont work because the "IRpgPlayer" and "RpgPlayerProvider" classes don't exist when the mod isn't loaded, so it causes a compiler error ("Unresolved Compilation Problems"), so technically the try-catch doesnt do anything because the problem is before it figures that out.


I know that this is possible because so many other mods have cross-mod compatibility.

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.

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.