private void SMCSelfUpdater_StatusChanged(JEMSelfUpdaterStatus JEMSelfUpdaterStatus) { JEMLogger.Log($"SMCSelfUpdater status changed: {JEMSelfUpdaterStatus}"); Invoke((MethodInvoker) delegate { switch (JEMSelfUpdaterStatus) { case JEMSelfUpdaterStatus.STARTING: InternalCurrentText = @"Starting SMC (SU)"; InternalCurrentValue = 00; InternalGlobalText = @"Starting SMC (SU)"; InternalGlobalValue = 00; InternalUpdateProgress(); break; case JEMSelfUpdaterStatus.PREPARING_SPACE: InternalCurrentText = @"Starting SMC (SU)"; InternalCurrentValue = 05; InternalGlobalText = @"Starting SMC (SU)"; InternalGlobalValue = 05; InternalUpdateProgress(); break; case JEMSelfUpdaterStatus.INFO_FAILED: InternalCurrentText = @"SMC (SU) Info Failed"; InternalUpdateProgress(); MessageBox.Show( @"The system was unable to download the necessary information needed for the update. Please try again later.", @"Error (SU)", MessageBoxButtons.OK, MessageBoxIcon.Error); Environment.Exit(9); break; case JEMSelfUpdaterStatus.INFO_LOADED: InternalCurrentText = @"SMC (SU) Info Loaded"; InternalUpdateProgress(); break; case JEMSelfUpdaterStatus.DISABLED_BY_INFO: InternalCurrentText = @"SMC (SU) Disabled by server."; InternalUpdateProgress(); MessageBox.Show( @"Sorry but our servers are currently disabled. Most likely, this is due to maintenance work or an update process. Please try again later.", @"Oops (SU)"); Environment.Exit(9); break; case JEMSelfUpdaterStatus.INITIALIZED: InternalCurrentText = @"SMC (SU) Initialized"; InternalCurrentValue = 30; InternalGlobalText = @"Starting SMC"; InternalGlobalValue = 10; InternalUpdateProgress(); break; case JEMSelfUpdaterStatus.DOWNLOADING: break; case JEMSelfUpdaterStatus.INSTALLING: break; case JEMSelfUpdaterStatus.INSTALLED: break; case JEMSelfUpdaterStatus.READY: RestartComponents(); InternalGlobalText = @"SMC (SU) Ready"; InternalGlobalValue = 100; InternalUpdateProgress(); // when selfupdater is done, initialize game downloader SMCDownloader.Initialize(); break; default: throw new ArgumentOutOfRangeException(nameof(JEMSelfUpdaterStatus), JEMSelfUpdaterStatus, null); } }); }
private void SMCDownloader_StatusChanged(JEMDownloaderStatus JEMDownloaderStatus) { JEMLogger.Log($"SMCDownloader status changed: {JEMDownloaderStatus}"); Invoke((MethodInvoker) delegate { switch (JEMDownloaderStatus) { case JEMDownloaderStatus.STARTING: InternalCurrentText = @"Starting SMC"; InternalCurrentValue = 00; InternalGlobalText = @"Starting SMC"; InternalGlobalValue = 00; InternalUpdateProgress(); break; case JEMDownloaderStatus.PREPARING_SPACE: InternalCurrentText = @"Starting SMC"; InternalCurrentValue = 10; InternalGlobalText = @"Starting SMC"; InternalGlobalValue = 20; InternalUpdateProgress(); break; case JEMDownloaderStatus.INFO_FAILED: InternalCurrentText = @"SMC Info Failed"; InternalUpdateProgress(); MessageBox.Show( @"The system was unable to download the necessary information needed for the update. Please try again later.", @"Error", MessageBoxButtons.OK, MessageBoxIcon.Error); Environment.Exit(9); break; case JEMDownloaderStatus.INFO_LOADED: InternalCurrentText = @"SMC Info Loaded"; InternalCurrentValue = 30; InternalGlobalText = @"Starting SMC"; InternalGlobalValue = 30; InternalUpdateProgress(); break; case JEMDownloaderStatus.DISABLED_BY_INFO: InternalCurrentText = @"SMC Disabled by server."; InternalUpdateProgress(); MessageBox.Show( @"Sorry but our servers are currently disabled. Most likely, this is due to maintenance work or an update process. Please try again later.", @"Oops"); Environment.Exit(9); break; case JEMDownloaderStatus.INITIALIZED: InternalCurrentText = @"SMC Initialized"; InternalCurrentValue = 40; InternalGlobalText = @"Starting SMC"; InternalGlobalValue = 40; InternalUpdateProgress(); if (!SMCDownloader.MakeUpdate(false)) { MessageBox.Show( @"System was unable to run update process. Internal downloader error.", @"Oops"); Environment.Exit(9); } break; case JEMDownloaderStatus.INITIALIZING_PACKAGES: InternalCurrentText = @"Getting server packages"; InternalCurrentValue = 55; InternalGlobalText = @"Checking Files"; InternalGlobalValue = 55; InternalUpdateProgress(); break; case JEMDownloaderStatus.INITIALIZING_SERVERCHECKSUM: InternalCurrentText = @"Getting server files"; InternalCurrentValue = 50; InternalGlobalText = @"Checking Files"; InternalGlobalValue = 50; InternalUpdateProgress(); break; case JEMDownloaderStatus.INITIALIZING_CLIENTCHECKSUM: InternalCurrentText = @"Getting local files"; InternalCurrentValue = 60; InternalGlobalText = @"Checking Files"; InternalGlobalValue = 50; InternalUpdateProgress(); break; case JEMDownloaderStatus.INITIALIZING_LIST: InternalCurrentText = @"Getting target files"; InternalCurrentValue = 70; InternalGlobalText = @"Checking Files"; InternalGlobalValue = 50; InternalUpdateProgress(); break; case JEMDownloaderStatus.DOWNLOADING: InternalCurrentText = @"Downloading target files"; InternalCurrentValue = 80; InternalGlobalText = @"Updating"; InternalGlobalValue = 60; InternalUpdateProgress(); break; case JEMDownloaderStatus.INSTALLING: InternalCurrentText = @"Installing target files"; InternalCurrentValue = 90; InternalGlobalText = @"Updating"; InternalGlobalValue = 70; InternalUpdateProgress(); break; case JEMDownloaderStatus.INSTALLED: InternalCurrentText = @"New files successfully installed"; InternalCurrentValue = 95; InternalGlobalText = @"Updating"; InternalGlobalValue = 80; InternalUpdateProgress(); break; case JEMDownloaderStatus.READY: RestartComponents(); InternalCurrentText = @"SMC Ready"; InternalCurrentValue = 100; InternalGlobalValue = 100; InternalUpdateProgress(); UpdateButtons(true); break; default: throw new ArgumentOutOfRangeException(nameof(JEMDownloaderStatus), JEMDownloaderStatus, null); } }); }
private void MainWindow_FormClosing(object sender, FormClosingEventArgs e) { SMCDownloader.ShutDownDownloader(); }
private void SMCDownloader_StatusChanged(JEMDownloaderStatus JEMDownloaderStatus) { JEMLogger.Log($"SMCDownloader status changed: {JEMDownloaderStatus}"); Invoke((MethodInvoker) delegate { switch (JEMDownloaderStatus) { case JEMDownloaderStatus.STARTING: labelCurrent.Text = @"Starting SMC"; progressBarCurrent.Value = 00; labelGlobal.Text = @"Starting SMC"; progressBarGlobal.Value = 00; break; case JEMDownloaderStatus.PREPARING_SPACE: labelCurrent.Text = @"Starting SMC"; progressBarCurrent.Value = 10; labelGlobal.Text = @"Starting SMC"; progressBarGlobal.Value = 20; break; case JEMDownloaderStatus.INFO_FAILED: labelCurrent.Text = @"SMC Info Failed"; MessageBox.Show( @"The system was unable to download the necessary information needed for the update. Please try again later.", @"Error", MessageBoxButtons.OK, MessageBoxIcon.Error); Environment.Exit(9); break; case JEMDownloaderStatus.INFO_LOADED: labelCurrent.Text = @"SMC Info Loaded"; progressBarCurrent.Value = 30; labelGlobal.Text = @"Starting SMC"; progressBarGlobal.Value = 30; break; case JEMDownloaderStatus.DISABLED_BY_INFO: labelCurrent.Text = @"SMC Disabled by server."; MessageBox.Show( @"Sorry but our servers are currently disabled. Most likely, this is due to maintenance work or an update process. Please try again later.", @"Oops"); Environment.Exit(9); break; case JEMDownloaderStatus.INITIALIZED: labelCurrent.Text = @"SMC Initialized"; progressBarCurrent.Value = 40; labelGlobal.Text = @"Starting SMC"; progressBarGlobal.Value = 40; if (!SMCDownloader.MakeUpdate(true)) { MessageBox.Show( @"System was unable to run update process. Internal downloader error.", @"Oops"); Environment.Exit(9); } break; case JEMDownloaderStatus.INITIALIZING_PACKAGES: labelCurrent.Text = @"Getting server packages"; progressBarCurrent.Value = 55; labelGlobal.Text = @"Checking Files"; progressBarGlobal.Value = 55; break; case JEMDownloaderStatus.INITIALIZING_SERVERCHECKSUM: labelCurrent.Text = @"Getting server files"; progressBarCurrent.Value = 50; labelGlobal.Text = @"Checking Files"; progressBarGlobal.Value = 50; break; case JEMDownloaderStatus.INITIALIZING_CLIENTCHECKSUM: labelCurrent.Text = @"Getting local files"; progressBarCurrent.Value = 60; labelGlobal.Text = @"Checking Files"; progressBarGlobal.Value = 50; break; case JEMDownloaderStatus.INITIALIZING_LIST: labelCurrent.Text = @"Getting target files"; progressBarCurrent.Value = 70; labelGlobal.Text = @"Checking Files"; progressBarGlobal.Value = 50; break; case JEMDownloaderStatus.DOWNLOADING: labelCurrent.Text = @"Downloading target files"; progressBarCurrent.Value = 80; labelGlobal.Text = @"Updating"; progressBarGlobal.Value = 60; break; case JEMDownloaderStatus.INSTALLING: labelCurrent.Text = @"Installing target files"; progressBarCurrent.Value = 90; labelGlobal.Text = @"Updating"; progressBarGlobal.Value = 70; break; case JEMDownloaderStatus.INSTALLED: labelCurrent.Text = @"New files successfully installed"; progressBarCurrent.Value = 95; labelGlobal.Text = @"Updating"; progressBarGlobal.Value = 80; break; case JEMDownloaderStatus.READY: RestartComponents(); labelGlobal.Text = @"SMC Ready"; progressBarGlobal.Value = 100; // start self updater var process = new Process { StartInfo = new ProcessStartInfo { FileName = Environment.GetCommandLineArgs()[1], WorkingDirectory = Environment.CurrentDirectory, WindowStyle = ProcessWindowStyle.Normal } }; JEMLogger.Log( $"Starting updater ({process.StartInfo.FileName} at {process.StartInfo.WorkingDirectory})."); process.Start(); Process.GetCurrentProcess().Kill(); break; default: throw new ArgumentOutOfRangeException(nameof(JEMDownloaderStatus), JEMDownloaderStatus, null); } }); }
private void MainWindow_Shown(object sender, EventArgs e) { SMCDownloader.Initialize(); }