public modInfo[] load_mods_info() { string data = File.ReadAllText(Hoi4_Mods); JObject mods = JObject.Parse(data); IList <JToken> results = mods.Children().Children().ToList(); IList <modInfo> modsList = new List <modInfo>(); foreach (JToken result in results) { modInfo mod = result.ToObject <modInfo>(); modsList.Add(mod); } return(modsList.ToArray()); }
private void UpdateModList(object data) { ClearList(); DisableBtns(); SetProgressBarMaxValue(3); SetStatusLabelText("Updating mods..."); bool AllowUnstable = (bool)data; try { WebClient wc = new WebClient(); string jsonBack = wc.DownloadString(@"https://repo.evemodx.com/api/v1/getmods"); ModsJsonStruct obj = JsonConvert.DeserializeObject <ModsJsonStruct>(jsonBack); SetStatusLabelText("validating..."); SetProgressBarValue(2); foreach (modInfo mod in obj.data) { if (!AllowUnstable && mod.type == "不稳定") { continue; } string InstV = ""; if (File.Exists(@"mod/" + mod.modname + ".zip")) { modInfo tempMI = EVEModX.Program.FRM.Mods.Find(i => i.modname == mod.modname); InstV = tempMI.Version.ToString(); } AddListItem(new ListViewItem(new string[] { mod.modname, mod.author, mod.brief, InstV, mod.Version.ToString(), mod.type })); Mods.Add(mod); } SetStatusLabelText("Update completed."); SetProgressBarValue(3); }catch (Exception e) { MessageBox.Show("Update failed, reason:" + e.Message, "Warning", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); Logger.Warning("Warning: " + e.Message + " (" + e.HResult + ")"); } isFirstInit = false; EnableBtns(); }