private List <MVersionMetadata> getFromLocal(MinecraftPath path) { var versionDirectory = new DirectoryInfo(path.Versions); if (!versionDirectory.Exists) { return(new List <MVersionMetadata>()); } var dirs = versionDirectory.GetDirectories(); var arr = new List <MVersionMetadata>(dirs.Length); for (int i = 0; i < dirs.Length; i++) { var dir = dirs[i]; var filepath = Path.Combine(dir.FullName, dir.Name + ".json"); if (File.Exists(filepath)) { var info = new MVersionMetadata(dir.Name); info.IsLocalVersion = true; info.Path = filepath; info.Type = "local"; info.MType = MVersionType.Custom; arr.Add(info); } } return(arr); }
private List <MVersionMetadata> parseVersions(string res, string loader) { var jarr = JArray.Parse(res); var versionList = new List <MVersionMetadata>(jarr.Count); foreach (var item in jarr) { string?versionName = item["version"]?.ToString(); if (string.IsNullOrEmpty(versionName)) { continue; } string jsonUrl = $"{ApiServer}/v2/versions/loader/{versionName}/{loader}/profile/json"; string id = GetVersionName(versionName, loader); var versionMetadata = new MVersionMetadata(id) { IsLocalVersion = false, MType = MVersionType.Custom, Path = jsonUrl, Type = "fabric" }; versionList.Add(versionMetadata); } return(versionList); }
public Process Start(string _version) { System.Net.ServicePointManager.DefaultConnectionLimit = 256; var game = new MinecraftPath(path); var launcher = new CMLauncher(game); launcher.ProgressChanged += Download_Progress; launcher.FileChanged += Download_ChangeFile; var lv = new LocalVersionLoader(game).GetVersionMetadatas(); MVersion findVersion = null; try { findVersion = lv.GetVersion(_version); } catch (KeyNotFoundException) { } //var findVersion = lv.GetVersion(_version); if (findVersion == null) { MVersionMetadata findMVersion = null; try { findMVersion = lv.GetVersionMetadata(_version); } catch (KeyNotFoundException) { } if (findMVersion != null) { findMVersion.Save(game); } else { var findWVersion = new MojangVersionLoader().GetVersionMetadatas().GetVersionMetadata(_version); if (findWVersion != null) { findWVersion.Save(game); } else { return(null); } } } try { findVersion = lv.GetVersion(_version); } catch (KeyNotFoundException) { return(null); } var launchOption = new MLaunchOption { MaximumRamMb = ram, Session = se, Path = game, StartVersion = findVersion, GameLauncherName = "JML", GameLauncherVersion = "1.0" }; MLaunch launch = new MLaunch(launchOption); var process = launch.GetProcess(); process.Start(); //Process process = launcher.CreateProcess(launchOption); //process.Start(); return(process); }