diff --git a/ArchiSteamFarm/GlobalDatabase.cs b/ArchiSteamFarm/GlobalDatabase.cs index 32dee6233..8d27c70f0 100644 --- a/ArchiSteamFarm/GlobalDatabase.cs +++ b/ArchiSteamFarm/GlobalDatabase.cs @@ -195,17 +195,26 @@ namespace ArchiSteamFarm { Dictionary AppIDs)> packagesData = await bot.GetPackagesData(packageIDs).ConfigureAwait(false); - if ((packagesData == null) || (packagesData.Count == 0)) { + if (packagesData == null) { bot.ArchiLogger.LogGenericWarning(Strings.WarningFailed); return; } + bool save = false; + foreach ((uint packageID, (uint ChangeNumber, HashSet AppIDs) packageData) in packagesData) { + if (PackagesData.TryGetValue(packageID, out (uint ChangeNumber, HashSet AppIDs) previousData) && (packageData.ChangeNumber <= previousData.ChangeNumber)) { + continue; + } + PackagesData[packageID] = packageData; + save = true; } - Utilities.InBackground(Save); + if (save) { + Utilities.InBackground(Save); + } } finally { PackagesRefreshSemaphore.Release(); }