package joshie.progression; import joshie.progression.commands.CommandManager; import joshie.progression.handlers.RemappingHandler; import joshie.progression.helpers.FileHelper; import joshie.progression.helpers.ModLogHelper; import joshie.progression.json.JSONLoader; import joshie.progression.json.Options; import joshie.progression.player.PlayerSavedData; import joshie.progression.plugins.enchiridion.EnchiridionSupport; import joshie.progression.plugins.thaumcraft.ThaumcraftSupport; import net.minecraft.command.ICommandManager; import net.minecraft.command.ServerCommandManager; import net.minecraft.util.text.translation.I18n; import net.minecraft.world.World; import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.common.Loader; 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.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.common.event.FMLServerStartingEvent; import net.minecraftforge.fml.relauncher.Side; import org.apache.commons.lang3.StringEscapeUtils; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import java.io.File; import static joshie.progression.lib.PInfo.*; @Mod(modid = MODID, name = MODNAME, version = VERSION, guiFactory = GUI_FACTORY_CLASS) public class Progression { public static final Logger logger = LogManager.getLogger(MODNAME); @SidedProxy(clientSide = JAVAPATH + "PClientProxy", serverSide = JAVAPATH + "PCommonProxy") public static PCommonProxy proxy; @Instance(MODID) public static Progression instance; public static PlayerSavedData data = new PlayerSavedData(MODNAME); public static ItemProgression item; @EventHandler public void preInit(FMLPreInitializationEvent event) { FileHelper.root = new File(event.getModConfigurationDirectory(), MODPATH); ModLogHelper.log("enchiridion", "The more that you read, the more things you will know. The more that you learn, the more places you'll go."); //Init the action types try { Class.forName(JAVAPATH + "crafting.ActionType"); } catch (ClassNotFoundException e) {} /** Create the config directory **/ Options.init(FileHelper.getOptions()); proxy.preInit(event.getAsmData()); proxy.initClient(); } @EventHandler public void init(FMLInitializationEvent event) { if (Loader.isModLoaded("enchiridion")) { try { EnchiridionSupport.init(); } catch (Exception e) { logger.log(Level.ERROR, "Failed to load the Enchiridion Support"); } } if (Loader.isModLoaded("Thaumcraft")) { try { ThaumcraftSupport.init(); } catch (Exception e) {} } proxy.registerRendering(); } @EventHandler public void onServerStarting(FMLServerStartingEvent event) { ICommandManager manager = event.getServer().getCommandManager(); if (manager instanceof ServerCommandManager) { ((ServerCommandManager) manager).registerCommand(CommandManager.INSTANCE); } if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) { Progression.logger.log(Level.INFO, "How did a client get in the server start?"); return; } //Remap all relevant data, Loads in the server data RemappingHandler.reloadServerData(JSONLoader.getServerTabData(RemappingHandler.getHostName()), false); World world = FMLCommonHandler.instance().getMinecraftServerInstance().worldServers[0]; data = (PlayerSavedData) world.loadItemData(PlayerSavedData.class, MODNAME); if (data == null) { createWorldData(); } } public void createWorldData() { World world = FMLCommonHandler.instance().getMinecraftServerInstance().worldServers[0]; data = new PlayerSavedData(MODNAME); world.setItemData(MODNAME, data); } public static String translate(String string) { return I18n.translateToLocal("progression." + string); } public static String format(String string, Object... object) { return StringEscapeUtils.unescapeJava(I18n.translateToLocalFormatted("progression." + string, object)); } }