package mcjty.rftools; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.FMLLog; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper; import mcjty.lib.base.GeneralConfig; import mcjty.lib.network.PacketHandler; import mcjty.lib.varia.WrenchChecker; import mcjty.rftools.blocks.ModBlocks; import mcjty.rftools.blocks.blockprotector.BlockProtectorConfiguration; import mcjty.rftools.blocks.crafter.CrafterConfiguration; import mcjty.rftools.blocks.dimletconstruction.DimletConstructionConfiguration; import mcjty.rftools.blocks.dimlets.DimletConfiguration; import mcjty.rftools.blocks.endergen.EndergenicConfiguration; import mcjty.rftools.blocks.environmental.EnvironmentalConfiguration; import mcjty.rftools.blocks.screens.ScreenConfiguration; import mcjty.rftools.blocks.shield.ShieldConfiguration; import mcjty.rftools.blocks.spaceprojector.SpaceProjectorConfiguration; import mcjty.rftools.blocks.spawner.SpawnerConfiguration; import mcjty.rftools.blocks.storage.ModularStorageConfiguration; import mcjty.rftools.blocks.storagemonitor.StorageScannerConfiguration; import mcjty.rftools.blocks.teleporter.TeleportConfiguration; import mcjty.rftools.crafting.ModCrafting; import mcjty.rftools.dimension.DimensionTickEvent; import mcjty.rftools.dimension.ModDimensions; import mcjty.rftools.gui.GuiProxy; import mcjty.rftools.items.ModItems; import mcjty.rftools.items.dimlets.KnownDimletConfiguration; import mcjty.rftools.items.netmonitor.NetworkMonitorConfiguration; import mcjty.rftools.mobs.ModEntities; import mcjty.rftools.network.RFToolsMessages; import mcjty.rftools.village.VillageSetup; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.config.Configuration; import org.apache.logging.log4j.Level; import java.io.File; public abstract class CommonProxy { public static File modConfigDir; private Configuration mainConfig; public void preInit(FMLPreInitializationEvent e) { GeneralConfig.preInit(e); modConfigDir = e.getModConfigurationDirectory(); mainConfig = new Configuration(new File(modConfigDir.getPath() + File.separator + "rftools", "main.cfg")); readMainConfig(); SimpleNetworkWrapper network = PacketHandler.registerMessages("rftools"); RFToolsMessages.registerNetworkMessages(network); ModItems.init(); ModBlocks.init(); ModCrafting.init(); ModDimensions.init(); KnownDimletConfiguration.setupChestLoot(); } private void readMainConfig() { Configuration cfg = mainConfig; try { cfg.load(); cfg.addCustomCategoryComment(GeneralConfiguration.CATEGORY_GENERAL, "General settings"); cfg.addCustomCategoryComment(CrafterConfiguration.CATEGORY_CRAFTER, "Settings for the automatic crafter machine"); cfg.addCustomCategoryComment(ScreenConfiguration.CATEGORY_SCREEN, "Settings for the screen system"); cfg.addCustomCategoryComment(SpaceProjectorConfiguration.CATEGORY_SPACEPROJECTOR, "Settings for the space projector system"); cfg.addCustomCategoryComment(StorageScannerConfiguration.CATEGORY_STORAGE_MONITOR, "Settings for the storage scanner machine"); cfg.addCustomCategoryComment(NetworkMonitorConfiguration.CATEGORY_NETWORK_MONITOR, "Settings for the network monitor item"); cfg.addCustomCategoryComment(TeleportConfiguration.CATEGORY_TELEPORTER, "Settings for the teleporter system"); cfg.addCustomCategoryComment(EndergenicConfiguration.CATEGORY_ENDERGENIC, "Settings for the endergenic generator"); cfg.addCustomCategoryComment(ShieldConfiguration.CATEGORY_SHIELD, "Settings for the shield system"); cfg.addCustomCategoryComment(DimletConfiguration.CATEGORY_DIMLETS, "Settings for the dimlet/dimension system"); cfg.addCustomCategoryComment(DimletConstructionConfiguration.CATEGORY_DIMLET_CONSTRUCTION, "Settings for the dimlet construction system"); cfg.addCustomCategoryComment(EnvironmentalConfiguration.CATEGORY_ENVIRONMENTAL, "Settings for the environmental controller system"); cfg.addCustomCategoryComment(BlockProtectorConfiguration.CATEGORY_BLOCKPROTECTOR, "Settings for the block protector machine"); cfg.addCustomCategoryComment(ModularStorageConfiguration.CATEGORY_STORAGE, "Settings for the modular storage system"); cfg.addCustomCategoryComment(ModularStorageConfiguration.CATEGORY_STORAGE_CONFIG, "Generic item module categories for various items"); cfg.addCustomCategoryComment(SpawnerConfiguration.CATEGORY_SPAWNER, "Settings for the spawner system"); cfg.addCustomCategoryComment(SpawnerConfiguration.CATEGORY_MOBSPAWNAMOUNTS, "Amount of materials needed to spawn mobs"); cfg.addCustomCategoryComment(SpawnerConfiguration.CATEGORY_MOBSPAWNRF, "Amount of RF needed to spawn mobs"); cfg.addCustomCategoryComment(SpawnerConfiguration.CATEGORY_LIVINGMATTER, "Blocks and items that are seen as living for the spawner"); cfg.addCustomCategoryComment(KnownDimletConfiguration.CATEGORY_RARITY, "General rarity distribution for dimlet selection"); cfg.addCustomCategoryComment(KnownDimletConfiguration.CATEGORY_GENERAL, "General dimension configuration"); cfg.addCustomCategoryComment(KnownDimletConfiguration.CATEGORY_MOBSPAWNS, "Settings for the mob dimlets"); cfg.addCustomCategoryComment(KnownDimletConfiguration.CATEGORY_RECURRENTCOMPLEX, "Settings Recurrent Complex structure dimlets"); GeneralConfiguration.init(cfg); NetworkMonitorConfiguration.init(cfg); CrafterConfiguration.init(cfg); StorageScannerConfiguration.init(cfg); TeleportConfiguration.init(cfg); EndergenicConfiguration.init(cfg); ShieldConfiguration.init(cfg); DimletConfiguration.init(cfg); DimletConstructionConfiguration.init(cfg); EnvironmentalConfiguration.init(cfg); SpawnerConfiguration.init(cfg); ScreenConfiguration.init(cfg); SpaceProjectorConfiguration.init(cfg); KnownDimletConfiguration.initGeneralConfig(cfg); BlockProtectorConfiguration.init(cfg); ModularStorageConfiguration.init(cfg); } catch (Exception e1) { FMLLog.log(Level.ERROR, e1, "Problem loading config file!"); } finally { if (mainConfig.hasChanged()) { mainConfig.save(); } } } public void init(FMLInitializationEvent e) { ModEntities.init(); VillageSetup.villagerSetup(); NetworkRegistry.INSTANCE.registerGuiHandler(RFTools.instance, new GuiProxy()); FMLCommonHandler.instance().bus().register(new ClientDisconnectEvent()); MinecraftForge.EVENT_BUS.register(new WorldLoadEvent()); MinecraftForge.EVENT_BUS.register(new ForgeEventHandlers()); MinecraftForge.ORE_GEN_BUS.register(new ForgeOregenHandlers()); MinecraftForge.TERRAIN_GEN_BUS.register(new ForgeTerrainGenHandlers()); FMLCommonHandler.instance().bus().register(new FMLEventHandlers()); FMLCommonHandler.instance().bus().register(new DimensionTickEvent()); } public void postInit(FMLPostInitializationEvent e) { // MobConfiguration.readModdedMobConfig(mainConfig); // if (mainConfig.hasChanged()) { // mainConfig.save(); // } mainConfig = null; WrenchChecker.init(); } }