public static MProfile Parse(Minecraft mc, MProfileInfo info) { string json; if (info.IsWeb) { using (var wc = new WebClient()) { json = wc.DownloadString(info.Path); return(ParseFromJson(mc, json, true)); } } else { return(ParseFromFile(mc, info.Path)); } }
/// <summary> /// Get All MProfileInfo from mojang server /// </summary> public static MProfileInfo[] GetProfilesFromWeb() { JArray jarr; using (WebClient wc = new WebClient()) { var jobj = JObject.Parse(wc.DownloadString(MojangServer.Profile)); jarr = JArray.Parse(jobj["versions"].ToString()); } var arr = new MProfileInfo[jarr.Count]; for (int i = 0; i < jarr.Count; i++) { var obj = jarr[i].ToObject <MProfileInfo>(); obj.IsWeb = true; arr[i] = obj; } return(arr); }
/// <summary> /// Get All MProfileInfo from local /// </summary> public static MProfileInfo[] GetProfilesFromLocal(Minecraft mc) { var dirs = new DirectoryInfo(mc.Versions).GetDirectories(); var arr = new List <MProfileInfo>(dirs.Length); for (int i = 0; i < dirs.Length; i++) { var dir = dirs[i]; var filepath = System.IO.Path.Combine(dir.FullName, dir.Name + ".json"); if (File.Exists(filepath)) { var info = new MProfileInfo(); info.IsWeb = false; info.Name = dir.Name; info.Path = filepath; arr.Add(info); } } return(arr.ToArray()); }