001    package cpw.mods.fml.common.event;
002    
003    import com.google.common.base.Throwables;
004    
005    import cpw.mods.fml.common.Loader;
006    import cpw.mods.fml.common.LoaderState.ModState;
007    
008    public class FMLPostInitializationEvent extends FMLStateEvent
009    {
010        public FMLPostInitializationEvent(Object... data)
011        {
012            super(data);
013        }
014    
015        @Override
016        public ModState getModState()
017        {
018            return ModState.POSTINITIALIZED;
019        }
020    
021        public Object buildSoftDependProxy(String modId, String className)
022        {
023            if (Loader.isModLoaded(modId))
024            {
025                try
026                {
027                    Class<?> clz = Class.forName(className,true,Loader.instance().getModClassLoader());
028                    return clz.newInstance();
029                }
030                catch (Exception e)
031                {
032                    Throwables.propagateIfPossible(e);
033                    return null;
034                }
035            }
036            return null;
037        }
038    }