public async Task CheckVersion() { try { GithubVersion latest = await VersionCheck.GetLatestVersionAsync("Zingabopp", "MultiplayerExtensions"); Log?.Debug($"Latest version is {latest}, released on {latest.ReleaseDate.ToShortDateString()}"); if (PluginMetadata != null) { SemVer.Version currentVer = PluginMetadata.Version; SemVer.Version latestVersion = new SemVer.Version(latest.ToString()); bool updateAvailable = new SemVer.Range($">{currentVer}").IsSatisfied(latestVersion); if (updateAvailable) { Log?.Info($"An update is available!\nNew mod version: {latestVersion}\nCurrent mod version: {currentVer}"); } } } catch (ReleaseNotFoundException ex) { Log?.Warn(ex.Message); } catch (Exception ex) { Log?.Warn($"Error checking latest version: {ex.Message}"); Log?.Debug(ex); } }
static async Task CheckVersion() { try { VersionChecker versionChecker = new VersionChecker { ReleaseFilter = VersionChecker.HasAsset("BeatSyncConsole") }; GithubVersion latest = await versionChecker.GetLatestVersionAsync("Zingabopp", "BeatSync").ConfigureAwait(false); if (!latest.IsValid) { Logger.log.Warn($"Unable to get information on the latest version."); return; } Version?current = Assembly.GetExecutingAssembly().GetName().Version; if (current != null) { int compare = latest.CompareTo(current); if (compare > 0) { Logger.log.Warn($"There is a new version of BeatSyncConsole available: ({latest}). Download the latest release from '{ReleaseUrl}'."); } else if (compare < 0) { Logger.log.Info($"Running a build of BeatSyncConsole from the future! Current released version is {latest}."); } else { Logger.log.Info($"Running the latest release of BeatSyncConsole."); } } } catch (Exception ex) { Logger.log.Warn($"Error checking for latest version: {ex.Message}."); Logger.log.Debug(ex); } }