package joshie.harvest;
import joshie.harvest.core.HFApiLoader;
import joshie.harvest.core.proxy.HFCommonProxy;
import joshie.harvest.core.commands.CommandManager;
import joshie.harvest.core.HFTrackers;
import net.minecraft.command.ICommandManager;
import net.minecraft.command.ServerCommandManager;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.Mod.Instance;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.*;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import static joshie.harvest.core.lib.HFModInfo.*;
@Mod(modid = MODID, name = MODNAME, version = VERSION, dependencies = DEPENDENCIES, guiFactory = GUI_FACTORY)
public class HarvestFestival {
@SidedProxy(clientSide = JAVAPATH + "core.proxy.HFClientProxy", serverSide = JAVAPATH + "core.proxy.HFCommonProxy")
public static HFCommonProxy proxy;
public static final Logger LOGGER = LogManager.getLogger(MODNAME);
@Instance(MODID)
public static HarvestFestival instance;
@EventHandler
public void onConstruction(FMLConstructionEvent event) {
HFApiLoader.init(event.getASMHarvestedData()); //Load in the api once construction is done
}
@EventHandler
public void preInit(FMLPreInitializationEvent event) {
proxy.setup(event.getAsmData()); //Load all the classes
proxy.setupConfig(event.getSuggestedConfigurationFile());
proxy.configure();
proxy.load("preInit");
proxy.loadAPI(event.getAsmData());
}
@EventHandler
public void init(FMLInitializationEvent event) {
proxy.load("init");
}
@EventHandler
public void postInit(FMLPostInitializationEvent event) {
proxy.load("postInit");
}
@EventHandler
public void onLoadComplete(FMLLoadCompleteEvent event) {
proxy.load("complete");
}
@EventHandler
public void onMapping(FMLModIdMappingEvent event) {
proxy.load("remap");
}
@EventHandler
public void onServerAboutToStart(FMLServerAboutToStartEvent event) {
HFTrackers.resetServer();
}
@EventHandler
public void onServerStarting(FMLServerStartingEvent event) {
ICommandManager manager = event.getServer().getCommandManager();
if (manager instanceof ServerCommandManager) {
((ServerCommandManager) manager).registerCommand(CommandManager.INSTANCE);
}
proxy.load("onServerStarting");
}
}