package cpw.mods.fml.common.event;

import cpw.mods.fml.common.LoaderState.ModState;

public class FMLPostInitializationEvent extends FMLStateEvent
{
    public FMLPostInitializationEvent(Object... data)
    {
        super(data);
    }

    @Override
    public ModState getModState()
    {
        return ModState.POSTINITIALIZED;
    }

}

@@ -29,16 +29,94 @@
 event;%0A%0A
+import com.google.common.base.Throwables;%0A%0Aimport cpw.mods.fml.common.Loader;%0A
 import c
@@ -411,10 +411,499 @@
 %0A    %7D%0A%0A
+    public Object buildSoftDependProxy(String modId, String className)%0A    %7B%0A        if (Loader.isModLoaded(modId))%0A        %7B%0A            try%0A            %7B%0A                Class%3C?%3E clz = Class.forName(className,true,Loader.instance().getModClassLoader());%0A                return clz.newInstance();%0A            %7D%0A            catch (Exception e)%0A            %7B%0A                Throwables.propagateIfPossible(e);%0A                return null;%0A            %7D%0A        %7D%0A        return null;%0A    %7D%0A
 %7D%0A

Add in a convenience method for getting a class instance based on existence of another Mod. Useful for soft dependencies.