001/*
002 * Forge Mod Loader
003 * Copyright (c) 2012-2013 cpw.
004 * All rights reserved. This program and the accompanying materials
005 * are made available under the terms of the GNU Lesser Public License v2.1
006 * which accompanies this distribution, and is available at
007 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
008 * 
009 * Contributors:
010 *     cpw - implementation
011 */
012
013package cpw.mods.fml.common.event;
014
015import com.google.common.base.Throwables;
016
017import cpw.mods.fml.common.Loader;
018import cpw.mods.fml.common.LoaderState.ModState;
019
020public class FMLPostInitializationEvent extends FMLStateEvent
021{
022    public FMLPostInitializationEvent(Object... data)
023    {
024        super(data);
025    }
026
027    @Override
028    public ModState getModState()
029    {
030        return ModState.POSTINITIALIZED;
031    }
032
033    public Object buildSoftDependProxy(String modId, String className)
034    {
035        if (Loader.isModLoaded(modId))
036        {
037            try
038            {
039                Class<?> clz = Class.forName(className,true,Loader.instance().getModClassLoader());
040                return clz.newInstance();
041            }
042            catch (Exception e)
043            {
044                Throwables.propagateIfPossible(e);
045                return null;
046            }
047        }
048        return null;
049    }
050}