package com.skcraft.playblock;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.Logger;
import com.skcraft.playblock.client.ClientRuntime;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.event.FMLServerStartedEvent;
import cpw.mods.fml.common.event.FMLServerStoppingEvent;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@Mod(modid = PlayBlock.MOD_ID, name = PlayBlock.MOD_NAME, dependencies = PlayBlock.DEPENDENCIES)
public class PlayBlock {
public static final String MOD_ID = "playblock";
public static final String MOD_NAME = "PlayBlock";
public static final String DEPENDENCIES = "after:OpenComputers@[1.5.0,)";
public static final String CHANNEL_ID = "PlayBlock";
public static Logger log;
@Instance
public static PlayBlock instance;
@SidedProxy(serverSide = "com.skcraft.playblock.SharedRuntime", clientSide = "com.skcraft.playblock.client.ClientRuntime")
public static SharedRuntime runtime;
@EventHandler
public void preInit(FMLPreInitializationEvent event) {
log = event.getModLog();
runtime.preInit(event);
}
@EventHandler
public void load(FMLInitializationEvent event) {
runtime.load(event);
}
@EventHandler
public void serverStarted(FMLServerStartedEvent event) {
runtime.serverStarted(event);
}
@EventHandler
public void serverStopping(FMLServerStoppingEvent event) {
runtime.serverStopping(event);
}
/**
* Get the runtime, which may be either a {@link ClientRuntime} or a
* {@link SharedRuntime}.
*
* @return the runtime
*/
public static SharedRuntime getRuntime() {
return runtime;
}
/**
* Get the client runtime.
*
* @return the client runtime
*/
@SideOnly(Side.CLIENT)
public static ClientRuntime getClientRuntime() {
return (ClientRuntime) runtime;
}
public static void log(Level level, String message) {
log.log(level, message);
}
public static void log(Level level, String message, Throwable t) {
log.log(level, message);
t.printStackTrace();
}
public static void logf(Level level, String format, Object... data) {
String message = String.format(format, data);
log(level, message);
}
}