public GameVersion MergeArguments(GameVersion MCMojang) { if (post_1_13 == true) { ForgeVersion MCForge = ForgeVersion.FromJson(File.ReadAllText(LibraryDir + _sForgeTree.Replace('/', '\\') + sForgeVersion + @"\version.json").Trim()); // replace vanilla values MCMojang.MainClass = MCForge.MainClass; // append forge arguments List <GameElement> itemList = MCMojang.Arguments.Game.ToList(); List <GameElement> moreItems = MCForge.Arguments.Game.ToList(); itemList.AddRange(moreItems); MCMojang.Arguments.Game = itemList.ToArray(); } else { ForgeInstaller MCForge = ForgeInstaller.FromJson(File.ReadAllText(LibraryDir + _sForgeTree.Replace('/', '\\') + sForgeVersion + @"\install_profile.json").Trim()); // replace vanilla settings MCMojang.MainClass = MCForge.VersionInfo.MainClass; MCMojang.MinecraftArguments = MCForge.VersionInfo.MinecraftArguments; } return(MCMojang); }
public Dictionary <string, string> InstallForge(string sForgeVersion) { this.sForgeVersion = sForgeVersion; Dictionary <string, string> ClassPath = new Dictionary <string, string>(); // Library list for startup sForgeVersionDir = LibraryDir + _sForgeTree.Replace('/', '\\') + sForgeVersion; sForgeInstallerFile = sForgeVersionDir + @"\forge-" + sForgeVersion + "-installer.jar"; string remoteFile = _sForgeMaven + _sForgeTree + sForgeVersion + "/forge-" + sForgeVersion + "-installer.jar"; //check if file exists if (!File.Exists(sForgeInstallerFile)) { dhelper.DownloadFileTo(remoteFile, sForgeInstallerFile, true, null); } // always extract files List <string> extractList = new List <string> { "install_profile.json", "version.json" }; dhelper.ExtractZipFiles(sForgeInstallerFile, sForgeVersionDir, extractList); if (File.Exists(LibraryDir + _sForgeTree.Replace('/', '\\') + sForgeVersion + @"\version.json")) { post_1_13 = true; } // post 1.13 files if (post_1_13 == true) { post_1_13 = true; ForgeVersion MCForge = ForgeVersion.FromJson(File.ReadAllText(LibraryDir + _sForgeTree.Replace('/', '\\') + sForgeVersion + @"\version.json").Trim()); // download Forge libraries ClassPath = DownloadForgeLibraries(MCForge); // extract Forge Jar extractList = new List <string> { "maven/net/minecraftforge/forge/" + sForgeVersion + "/forge-" + sForgeVersion + ".jar" }; dhelper.ExtractZipFiles(sForgeInstallerFile, sForgeVersionDir, extractList, false); // build client.jar BuildForgeClientJar(); // append Forge to classpath ClassPath.Add("net.minecraftforge:forge", sForgeVersionDir + @"\forge-" + sForgeVersion + ".jar"); } // pre 1.13 files else if (post_1_13 == false) { post_1_13 = false; ForgeInstaller MCForge = ForgeInstaller.FromJson(File.ReadAllText(LibraryDir + _sForgeTree.Replace('/', '\\') + sForgeVersion + @"\install_profile.json").Trim()); // download Forge libraries ClassPath = DownloadForgeLibraries(MCForge); // Extract Universal Jar extractList = new List <string> { "forge-" + sForgeVersion + "-universal.jar" }; dhelper.ExtractZipFiles(sForgeInstallerFile, sForgeVersionDir, extractList); // append Forge to classpath ClassPath.Add("net.minecraftforge:forge", sForgeVersionDir + @"\forge-" + sForgeVersion + "-universal.jar"); } return(ClassPath); }