package net.minecraftforge.common; import java.io.File; import java.util.Arrays; import java.util.Map; import net.minecraft.nbt.NBTBase; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.storage.SaveHandler; import net.minecraft.world.storage.WorldInfo; import com.google.common.eventbus.EventBus; import com.google.common.eventbus.Subscribe; import cpw.mods.fml.common.DummyModContainer; import cpw.mods.fml.common.LoadController; import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.ModMetadata; import cpw.mods.fml.common.WorldAccessContainer; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import static net.minecraftforge.common.ForgeVersion.*; public class ForgeDummyContainer extends DummyModContainer implements WorldAccessContainer { public ForgeDummyContainer() { super(new ModMetadata()); ModMetadata meta = getMetadata(); meta.modId = "Forge"; meta.name = "Minecraft Forge"; meta.version = String.format("%d.%d.%d.%d", majorVersion, minorVersion, revisionVersion, buildVersion); meta.credits = "Made possible with help from many people"; meta.authorList = Arrays.asList("LexManos", "Eloraam", "Spacetoad"); meta.description = "Minecraft Forge is a common open source API allowing a broad range of mods " + "to work cooperatively together. It allows many mods to be created without " + "them editing the main Minecraft code."; meta.url = "http://MinecraftForge.net"; meta.updateUrl = "http://MinecraftForge.net/forum/index.php/topic,5.0.html"; meta.screenshots = new String[0]; meta.logoFile = "/forge_logo.png"; Configuration config = new Configuration(new File(Loader.instance().getConfigDir(), "forge.cfg")); if (!config.isChild) { config.load(); Property enableGlobalCfg = config.get(Configuration.CATEGORY_GENERAL, "enableGlobalConfig", false); if (enableGlobalCfg.getBoolean(false)) { Configuration.enableGlobalConfig(); } config.save(); } } @Override public boolean registerBus(EventBus bus, LoadController controller) { bus.register(this); return true; } @Subscribe public void preInit(FMLPreInitializationEvent evt) { ForgeChunkManager.captureConfig(evt.getModConfigurationDirectory()); } @Subscribe public void postInit(FMLPostInitializationEvent evt) { ForgeChunkManager.loadConfiguration(); } @Override public NBTTagCompound getDataForWriting(SaveHandler handler, WorldInfo info) { NBTTagCompound forgeData = new NBTTagCompound(); NBTTagCompound dimData = DimensionManager.saveDimensionDataMap(); forgeData.setCompoundTag("DimensionData", dimData); return forgeData; } @Override public void readData(SaveHandler handler, WorldInfo info, Map<String, NBTBase> propertyMap, NBTTagCompound tag) { if (tag.hasKey("DimensionData")) { DimensionManager.loadDimensionDataMap(tag.hasKey("DimensionData") ? tag.getCompoundTag("DimensionData") : null); } } }