コード例 #1
0
        private async void checkServerUpdatesButton_Click(object sender, RoutedEventArgs e)
        {
            ValheimPlusUpdate valheimPlusUpdate = await UpdateManager.CheckForValheimPlusUpdatesAsync(Settings.ValheimPlusServerClientVersion);

            if (valheimPlusUpdate.NewVersion)
            {
                installServerUpdateButton.Content   = String.Format("Install update {0}", valheimPlusUpdate.Version);
                installServerUpdateButton.IsEnabled = true;
                statusLabel.Foreground = Brushes.Green;
                statusLabel.Content    = String.Format("Update {0} available for server client", valheimPlusUpdate.Version);
            }
            else
            {
                statusSnackBar.MessageQueue.Enqueue("No new server updates available");
            }
        }
コード例 #2
0
        public static async Task <bool> DownloadValheimPlusUpdateAsync(string valheimPlusVersion, bool manageClient)
        {
            ValheimPlusUpdate valheimPlusUpdate = await CheckForValheimPlusUpdatesAsync(valheimPlusVersion);

            var wc = new System.Net.WebClient();

            if (manageClient)
            {
                wc.DownloadFile(valheimPlusUpdate.WindowsGameClientDownloadURL, @"Data/ValheimPlusGameClient/WindowsClient.zip");
                await InstallValheimPlusUpdateAsync(true, valheimPlusUpdate.Version);

                return(true);
            }
            else
            {
                wc.DownloadFile(valheimPlusUpdate.WindowsServerClientDownloadURL, @"Data/ValheimPlusServerClient/WindowsServer.zip");
                await InstallValheimPlusUpdateAsync(false, valheimPlusUpdate.Version);

                return(true);
            }
        }
コード例 #3
0
        private async void installClientButton_Click(object sender, RoutedEventArgs e)
        {
            installClientUpdateButton.IsEnabled = false;

            ValheimPlusUpdate valheimPlusUpdate = await UpdateManager.CheckForValheimPlusUpdatesAsync(Settings.ValheimPlusGameClientVersion);

            if (valheimPlusUpdate.NewVersion)
            {
                bool success = await UpdateManager.DownloadValheimPlusUpdateAsync(Settings.ValheimPlusGameClientVersion, true);

                if (success)
                {
                    Settings = SettingsDAL.GetSettings();
                    statusLabel.Foreground       = Brushes.Green;
                    clientInstalledLabel.Content = String.Format("ValheimPlus {0} installed on client", Settings.ValheimPlusGameClientVersion);
                    statusSnackBar.MessageQueue.Enqueue("Success! Game client updated to latest version");
                    installClientUpdateButton.IsEnabled = false;
                    UISettingsInit();
                }
            }
        }
コード例 #4
0
        public static async Task <ValheimPlusUpdate> CheckForValheimPlusUpdatesAsync(string valheimPlusVersion)
        {
            ValheimPlusUpdate valheimPlusUpdate = new ValheimPlusUpdate();

            // Calling Github API to fetch versions of ValheimPlus
            var github   = new GitHubClient(new ProductHeaderValue("ValheimPlusManager"));
            var releases = await github.Repository.Release.GetAll("valheimPlus", "ValheimPlus");

            var latest = releases[0];

            // Comparing latest release on ValheimPlus Github to currently installed locally
            var latestVersion  = new Version(latest.TagName);
            var currentVersion = new Version(valheimPlusVersion);
            var result         = latestVersion.CompareTo(currentVersion);

            if (result > 0) // If a new version is available
            {
                valheimPlusUpdate.NewVersion = true;
                valheimPlusUpdate.Version    = latest.TagName;
                valheimPlusUpdate.WindowsServerClientDownloadURL = latest.Assets.Single(x => x.Name == "WindowsServer.zip").BrowserDownloadUrl;
                valheimPlusUpdate.WindowsGameClientDownloadURL   = latest.Assets.Single(x => x.Name == "WindowsClient.zip").BrowserDownloadUrl;
                return(valheimPlusUpdate);
            }
            else if (result < 0)
            {
                valheimPlusUpdate.NewVersion = false;
                valheimPlusUpdate.Version    = latest.TagName;
                valheimPlusUpdate.WindowsServerClientDownloadURL = latest.Assets.Single(x => x.Name == "WindowsServer.zip").BrowserDownloadUrl;
                valheimPlusUpdate.WindowsGameClientDownloadURL   = latest.Assets.Single(x => x.Name == "WindowsClient.zip").BrowserDownloadUrl;
                return(valheimPlusUpdate);
            }
            else
            {
                valheimPlusUpdate.NewVersion = false;
                valheimPlusUpdate.Version    = latest.TagName;
                valheimPlusUpdate.WindowsServerClientDownloadURL = latest.Assets.Single(x => x.Name == "WindowsServer.zip").BrowserDownloadUrl;
                valheimPlusUpdate.WindowsGameClientDownloadURL   = latest.Assets.Single(x => x.Name == "WindowsClient.zip").BrowserDownloadUrl;
                return(valheimPlusUpdate);
            }
        }
コード例 #5
0
        private async void installServerUpdateButton_Click(object sender, RoutedEventArgs e)
        {
            installServerUpdateButton.IsEnabled = false;
            installServerUpdateButton.Content   = "Installing update ...";

            ValheimPlusUpdate valheimPlusUpdate = await UpdateManager.CheckForValheimPlusUpdatesAsync(Settings.ValheimPlusServerClientVersion);

            if (valheimPlusUpdate.NewVersion)
            {
                bool success = await UpdateManager.DownloadValheimPlusUpdateAsync(Settings.ValheimPlusServerClientVersion, false, false);

                if (success)
                {
                    Settings = SettingsDAL.GetSettings();
                    serverInstalledLabel.Content = String.Format("ValheimPlus {0} installed on server", Settings.ValheimPlusServerClientVersion);
                    statusSnackBar.MessageQueue.Enqueue("Success! Server client updated to latest version");
                    installServerUpdateButton.Content   = "Update installed!";
                    installServerUpdateButton.IsEnabled = false;
                    statusLabel.Visibility = Visibility.Hidden;
                }
            }
        }