Skip to content

Commit c8e3514

Browse files
committed
Merge branch 'master' of https://github.com/X-Hax/SA-Mod-Manager
2 parents fb1c357 + f3dd10c commit c8e3514

1 file changed

Lines changed: 17 additions & 8 deletions

File tree

SA-Mod-Manager/Updater/ModUpdater.cs

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,12 @@ public async Task<ModDownload> GetGitHubReleases(ModInfo mod, string modsFolder,
103103

104104
GitHubRelease latestRelease = null;
105105
GitHubAsset latestAsset = null;
106+
DateTime latestAssetUploaded = DateTime.MinValue;
106107

108+
bool foundAsset = false;
109+
110+
// The loop finds the latest release (based on date) out of the releases
111+
// that are newer than the version stored in mod.version.
107112
foreach (GitHubRelease release in releases)
108113
{
109114
GitHubAsset asset = release.Assets
@@ -114,24 +119,28 @@ public async Task<ModDownload> GetGitHubReleases(ModInfo mod, string modsFolder,
114119
continue;
115120
}
116121

117-
latestRelease = release;
122+
foundAsset = true;
123+
124+
DateTime uploaded = DateTime.Parse(asset.Uploaded, CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal);
118125

119126
if (!ForceUpdate && localVersion.HasValue)
120127
{
121-
DateTime uploaded = DateTime.Parse(asset.Uploaded, CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal);
122-
123128
if (localVersion >= uploaded)
124129
{
125-
// No updates available.
126-
break;
130+
// Skip this release since it's older than our current version.
131+
continue;
127132
}
128133
}
129134

130-
latestAsset = asset;
131-
break;
135+
if(uploaded > latestAssetUploaded)
136+
{
137+
latestRelease = release;
138+
latestAsset = asset;
139+
latestAssetUploaded = uploaded;
140+
}
132141
}
133142

134-
if (latestRelease == null)
143+
if (!foundAsset)
135144
{
136145
errors.Add($"[{mod.Name}] No releases with matching asset \"{mod.GitHubAsset}\" could be found in {releases.Count} release(s).");
137146
return null;

0 commit comments

Comments
 (0)