Add in a convenience method for getting a class instance based on

existence of another Mod. Useful for soft dependencies.
This commit is contained in:
Christian committed 2012-08-25 21:26:41 -04:00
1 parent 2d9b88bd52
commit d3d430827f
1 file changed
+20
@@ -1,5 +1,8 @@
package cpw.mods.fml.common.event;
import com.google.common.base.Throwables;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.LoaderState.ModState;
public class FMLPostInitializationEvent extends FMLStateEvent
@@ -15,4 +18,21 @@ public class FMLPostInitializationEvent extends FMLStateEvent
return ModState.POSTINITIALIZED;
}
public Object buildSoftDependProxy(String modId, String className)
{
if (Loader.isModLoaded(modId))
{
try
{
Class<?> clz = Class.forName(className,true,Loader.instance().getModClassLoader());
return clz.newInstance();
}
catch (Exception e)
{
Throwables.propagateIfPossible(e);
return null;
}
}
return null;
}
}