public GameVersion GetGameVersion(string mcversion) { VersionsVersion oVersion = null; try { if (_versions == null) { GetVersionManifest(); } foreach (VersionsVersion version in _versions.Versions) { if (version.Id.Equals(mcversion)) { oVersion = version; break; } } // throw execption when version not found if (oVersion == null) { throw new Exception("Minecraft version not found."); } string sVersion = Http.GET(oVersion.Url); return(GameVersion.FromJson(sVersion)); } catch (Exception ex) { throw ex; } }
public void StartPack(string sPackName, string sPackVersion) { FilesMojang MCMojangFiles = new FilesMojang(dhelper) { LibraryDir = _sLibraryDir, VersionDir = _sVersionDir, NativesDir = _sNativesDir, AssetsDir = _sAssetsDir, OfflineMode = Offline }; // check if pack is installed with given version if (!IsPackInstalled(sPackName, sPackVersion)) { InstallPack(sPackName, sPackVersion); } // getting pack json file MCPack pack = MCPack.FromJson(File.ReadAllText(_sPacksDir + @"\" + sPackName + @"\pack.json").Trim()); // vanilla Minecraft MCMojangFiles.DownloadVersionJson(pack.MCVersion); GameVersion MCMojang = GameVersion.FromJson(File.ReadAllText(_sVersionDir + @"\" + pack.MCVersion + @"\" + pack.MCVersion + ".json").Trim()); // download game jar MCMojangFiles.DownloadClientJar(MCMojang); // download libraries if needed Dictionary <string, string> ClassPath = MCMojangFiles.DownloadClientLibraries(MCMojang); // download assets if needed MCMojangFiles.DownloadClientAssets(MCMojang); // additional things for forge if (pack.Type.Equals("forge")) { isForge = true; forgeVersion = pack.ForgeVersion; FilesForge MCForgeFiles = new FilesForge(dhelper) { LibraryDir = _sLibraryDir, VersionDir = _sVersionDir, OfflineMode = Offline }; // Install Forge Dictionary <string, string> ForgeClassPath = MCForgeFiles.InstallForge(pack.ForgeVersion); //Merge Classpath foreach (KeyValuePair <string, string> entry in ForgeClassPath) { if (ClassPath.ContainsKey(entry.Key)) { ClassPath.Remove(entry.Key); } ClassPath.Add(entry.Key, entry.Value); } // Merge startup parameter MCMojang = MCForgeFiles.MergeArguments(MCMojang); } // set selected version SetSelectedVersion(sPackName, sPackVersion); // start the pack Start(BuildArgs(MCMojang, sPackName, ClassPath), sPackName); // close bar if open if (dhelper.IsBarVisible() == true) { dhelper.HideBar(); } //if (_bar.Visible == true) _bar.Hide(); }