internal static void CheckForUpdates(IEnumerable <UpdateInfo> allUpdateInfo, List <UpdateInfo> modsNeedingUpdates) { Parallel.ForEach( allUpdateInfo, async updateInfo => { try { var updater = new UpdaterHttp(updateInfo); if (await updater.IsUpdate()) { lock (modsNeedingUpdates) { modsNeedingUpdates.Add(updateInfo); } } } catch (Exception e) { MelonLogger.Warning($"Encountered exception trying to check {updateInfo.Name} for updates: "); MelonLogger.Warning(e.ToString()); } } ); }
private static async Task UpdateMod(UpdateInfo updateInfo) { var updater = new UpdaterHttp(updateInfo); try { if (await updater.Download($"{Environment.CurrentDirectory}\\Mods")) { MelonLogger.Msg($"Successfully downloaded new version of {updateInfo.Name}"); updatedMods = true; return; } } catch (Exception e) { MelonLogger.Warning(e.ToString()); } MelonLogger.Warning($"Failed to download mod {updateInfo.Name}"); }