TheGoldenProof Posted December 2, 2018 Share Posted December 2, 2018 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: Spoiler @EventHandler 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: Spoiler 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. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.