public static MinecraftVersion fromJson(string json) { MinecraftVersion version = new MinecraftVersion(); try { JObject obj = JObject.Parse(json); version.Key = (string)obj["id"]; try { version.Type = (ReleaseType)Enum.Parse(typeof(ReleaseType), (string)obj["type"]); } catch { version.Type = ReleaseType.unknown; } try { version.Arguments = (ProcessArguments)Enum.Parse(typeof(ProcessArguments), (string)obj["processArguments"]); } catch { version.Arguments = ProcessArguments.legacy; } version.MinecraftArguments = (string)obj["minecraftArguments"]; version.minimumLauncherVersion = Convert.ToInt32((string)obj["minimumLauncherVersion"]); version.mainClass = (string)obj["mainClass"]; version.Libraries = new List<Library>(); foreach (JObject obj2 in obj["libraries"].Children<JObject>()) { Library lib = new Library(); lib.Name = (string)obj2["name"]; if (obj2["natives"] == null) lib.IsNative = false; else { lib.IsNative = true; lib.ExtractExclusions = new List<string>(); } if (obj2["extract"] != null) { foreach (JObject obj3 in obj2["extract"]["exclude"].Children<JObject>()) { lib.ExtractExclusions.Add((string)obj3); } } bool allow = true; if (obj2["rules"] != null) { foreach (JObject obj3 in obj2["rules"].Children<JObject>()) { if (obj3["action"].ToString() == "allow" && obj3["os"] != null) { if (obj3["os"]["name"].ToString() == "windows") allow = true; else allow = false; } else if (obj3["action"].ToString() == "disallow" && obj3["os"] != null) { if (obj3["os"]["name"].ToString() == "windows") allow = false; } } } if(allow) version.Libraries.Add(lib); } return version; } catch (Exception ex) { App.Log("An error occured while loading Minecraft version from json"); App.Log("Error: " + ex.ToString()); return null; } }
public static void ChooseVersion(MinecraftVersion version, MCVersionPage page) { MinecraftData.selectedVersion = version; }
public static MinecraftVersion fromJson(string json) { MinecraftVersion version = new MinecraftVersion(); try { JObject obj = JObject.Parse(json); version.Key = (string)obj["id"]; try { version.Type = (ReleaseType)Enum.Parse(typeof(ReleaseType), (string)obj["type"]); } catch { version.Type = ReleaseType.unknown; } try { version.Arguments = (ProcessArguments)Enum.Parse(typeof(ProcessArguments), (string)obj["processArguments"]); } catch { version.Arguments = ProcessArguments.legacy; } version.MinecraftArguments = (string)obj["minecraftArguments"]; version.minimumLauncherVersion = Convert.ToInt32((string)obj["minimumLauncherVersion"]); version.mainClass = (string)obj["mainClass"]; version.Libraries = new List <Library>(); foreach (JObject obj2 in obj["libraries"].Children <JObject>()) { Library lib = new Library(); lib.Name = (string)obj2["name"]; if (obj2["natives"] == null) { lib.IsNative = false; } else { lib.IsNative = true; lib.ExtractExclusions = new List <string>(); } if (obj2["extract"] != null) { foreach (JObject obj3 in obj2["extract"]["exclude"].Children <JObject>()) { lib.ExtractExclusions.Add((string)obj3); } } bool allow = true; if (obj2["rules"] != null) { foreach (JObject obj3 in obj2["rules"].Children <JObject>()) { if (obj3["action"].ToString() == "allow" && obj3["os"] != null) { if (obj3["os"]["name"].ToString() == "windows") { allow = true; } else { allow = false; } } else if (obj3["action"].ToString() == "disallow" && obj3["os"] != null) { if (obj3["os"]["name"].ToString() == "windows") { allow = false; } } } } if (allow) { version.Libraries.Add(lib); } } return(version); } catch (Exception ex) { App.Log("An error occured while loading Minecraft version from json"); App.Log("Error: " + ex.ToString()); return(null); } }