001/*
002 * Forge Mod Loader
003 * Copyright (c) 2012-2013 cpw.
004 * All rights reserved. This program and the accompanying materials
005 * are made available under the terms of the GNU Lesser Public License v2.1
006 * which accompanies this distribution, and is available at
007 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
008 * 
009 * Contributors:
010 *     cpw - implementation
011 */
012
013package cpw.mods.fml.relauncher;
014
015import java.io.File;
016import java.io.IOException;
017import java.io.InputStream;
018import java.util.ArrayList;
019import java.util.List;
020import java.util.Properties;
021import java.util.logging.Level;
022
023public class FMLInjectionData
024{
025    static File minecraftHome;
026    static String major;
027    static String minor;
028    static String rev;
029    static String build;
030    static String mccversion;
031    static String mcpversion;
032    static String deobfuscationDataHash;
033
034    public static List<String> containers = new ArrayList<String>();
035
036    static void build(File mcHome, RelaunchClassLoader classLoader)
037    {
038        minecraftHome = mcHome;
039        InputStream stream = classLoader.getResourceAsStream("fmlversion.properties");
040        Properties properties = new Properties();
041
042        if (stream != null)
043        {
044            try
045            {
046                properties.load(stream);
047            }
048            catch (IOException ex)
049            {
050                FMLRelaunchLog.log(Level.SEVERE, ex, "Could not get FML version information - corrupted installation detected!");
051            }
052        }
053
054        major = properties.getProperty("fmlbuild.major.number", "missing");
055        minor = properties.getProperty("fmlbuild.minor.number", "missing");
056        rev = properties.getProperty("fmlbuild.revision.number", "missing");
057        build = properties.getProperty("fmlbuild.build.number", "missing");
058        mccversion = properties.getProperty("fmlbuild.mcversion", "missing");
059        mcpversion = properties.getProperty("fmlbuild.mcpversion", "missing");
060        deobfuscationDataHash = properties.getProperty("fmlbuild.deobfuscation.hash","deadbeef");
061    }
062
063    static String debfuscationDataName()
064    {
065        return "deobfuscation_data_"+mccversion+".zip";
066    }
067    public static Object[] data()
068    {
069        return new Object[] { major, minor, rev, build, mccversion, mcpversion, minecraftHome, containers };
070    }
071}