예제 #1
0
        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());
                }
            }
                );
        }
예제 #2
0
        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}");
        }