public void Initialize() { #if DEBUG var fakeStartMenuItem = new MenuItem { Header = "Fake start" }; fakeStartMenuItem.Click += FakeStart_OnClick; LoginContextMenu.Items.Add(fakeStartMenuItem); #endif // Upgrade the stored settings if needed if (Properties.Settings.Default.UpgradeRequired) { Log.Information("Settings upgrade required..."); Properties.Settings.Default.Upgrade(); Properties.Settings.Default.UpgradeRequired = false; Properties.Settings.Default.Save(); } // Clean up invalid addons if (App.Settings.AddonList != null) { App.Settings.AddonList = App.Settings.AddonList.Where(x => !string.IsNullOrEmpty(x.Addon.Path)).ToList(); } App.Settings.EncryptArguments ??= true; App.Settings.AskBeforePatchInstall ??= true; var gateStatus = false; try { gateStatus = _launcher.GetGateStatus(); } catch { // ignored } if (!gateStatus) { WorldStatusPackIcon.Foreground = new SolidColorBrush(Color.FromRgb(242, 24, 24)); } var version = Util.GetAssemblyVersion(); if (Properties.Settings.Default.LastVersion != version) { new ChangelogWindow().ShowDialog(); Properties.Settings.Default.LastVersion = version; Properties.Settings.Default.Save(); } _accountManager = new AccountManager(App.Settings); var savedAccount = _accountManager.CurrentAccount; if (savedAccount != null) { SwitchAccount(savedAccount, false); } AutoLoginCheckBox.IsChecked = App.Settings.AutologinEnabled; if (App.Settings.UniqueIdCacheEnabled && Keyboard.Modifiers.HasFlag(ModifierKeys.Control)) { UniqueIdCache.Instance.Reset(); Console.Beep(523, 150); // Feedback without popup } if (App.GlobalIsDisableAutologin) { Log.Information("Autologin was disabled globally, saving into settings..."); App.Settings.AutologinEnabled = false; } if (App.Settings.AutologinEnabled && savedAccount != null && !Keyboard.Modifiers.HasFlag(ModifierKeys.Shift)) { Log.Information("Engaging Autologin..."); try { this.Kickoff(true); return; } catch (Exception ex) { new ErrorWindow(ex, Loc.Localize("CheckLoginInfo", "Additionally, please check your login information or try again."), "AutoLogin") .ShowDialog(); App.Settings.AutologinEnabled = false; _isLoggingIn = false; } } else if (Keyboard.Modifiers.HasFlag(ModifierKeys.Shift) || bool.Parse(Environment.GetEnvironmentVariable("XL_NOAUTOLOGIN") ?? "false")) { App.Settings.AutologinEnabled = false; AutoLoginCheckBox.IsChecked = false; } if (App.Settings.GamePath?.Exists != true) { var setup = new FirstTimeSetup(); setup.ShowDialog(); // If the user didn't reach the end of the setup, we should quit if (!setup.WasCompleted) { Environment.Exit(0); return; } SettingsControl.ReloadSettings(); } Task.Run(SetupHeadlines); ProblemCheck.RunCheck(); Log.Information("MainWindow initialized."); Show(); Activate(); }
public void Initialize() { // Upgrade the stored settings if needed if (Properties.Settings.Default.UpgradeRequired) { Log.Information("Settings upgrade required..."); Properties.Settings.Default.Upgrade(); Properties.Settings.Default.UpgradeRequired = false; Properties.Settings.Default.Save(); } // Clean up invalid addons if (App.Settings.AddonList != null) { App.Settings.AddonList = App.Settings.AddonList.Where(x => !string.IsNullOrEmpty(x.Addon.Path)).ToList(); } App.Settings.EncryptArguments ??= true; App.Settings.AskBeforePatchInstall ??= true; var gateStatus = false; try { gateStatus = _launcher.GetGateStatus(); } catch { // ignored } if (!gateStatus) { WorldStatusPackIcon.Foreground = new SolidColorBrush(Color.FromRgb(242, 24, 24)); } var version = Util.GetAssemblyVersion(); if (Properties.Settings.Default.LastVersion != version) { new ChangelogWindow().ShowDialog(); Properties.Settings.Default.LastVersion = version; Properties.Settings.Default.Save(); } _accountManager = new AccountManager(App.Settings); var savedAccount = _accountManager.CurrentAccount; if (savedAccount != null) { SwitchAccount(savedAccount, false); } AutoLoginCheckBox.IsChecked = App.Settings.AutologinEnabled; if (App.Settings.AutologinEnabled && savedAccount != null && !Keyboard.Modifiers.HasFlag(ModifierKeys.Shift)) { Log.Information("Engaging Autologin..."); try { HandleLogin(true); return; } catch (Exception ex) { new ErrorWindow(ex, Loc.Localize("CheckLoginInfo", "Additionally, please check your login information or try again."), "AutoLogin") .ShowDialog(); App.Settings.AutologinEnabled = false; _isLoggingIn = false; } } else if (Keyboard.Modifiers.HasFlag(ModifierKeys.Shift) || bool.Parse(Environment.GetEnvironmentVariable("XL_NOAUTOLOGIN") ?? "false")) { App.Settings.AutologinEnabled = false; AutoLoginCheckBox.IsChecked = false; } if (App.Settings.GamePath?.Exists != true) { var setup = new FirstTimeSetup(); setup.ShowDialog(); SettingsControl.ReloadSettings(); } Task.Run(SetupHeadlines); ProblemCheck.RunCheck(); Log.Information("MainWindow initialized."); HandleBootCheck(() => { this.Dispatcher.Invoke(() => { Show(); Activate(); }); }); }
public void Initialize() { // Upgrade the stored settings if needed if (Properties.Settings.Default.UpgradeRequired) { Log.Information("Settings upgrade required..."); Properties.Settings.Default.Upgrade(); Properties.Settings.Default.UpgradeRequired = false; Properties.Settings.Default.Save(); } // Clean up invalid addons if (App.Settings.AddonList != null) { App.Settings.AddonList = App.Settings.AddonList.Where(x => !string.IsNullOrEmpty(x.Addon.Path)).ToList(); } if (!App.Settings.EncryptArguments.HasValue) { App.Settings.EncryptArguments = true; } var gateStatus = false; try { gateStatus = _game.GetGateStatus(); } catch { // ignored } if (!gateStatus) { WorldStatusPackIcon.Foreground = new SolidColorBrush(Color.FromRgb(242, 24, 24)); } var version = Util.GetAssemblyVersion(); if (Properties.Settings.Default.LastVersion != version) { new ChangelogWindow().ShowDialog(); Properties.Settings.Default.LastVersion = version; Properties.Settings.Default.Save(); } _accountManager = new AccountManager(App.Settings); var savedAccount = _accountManager.CurrentAccount; if (savedAccount != null) { SwitchAccount(savedAccount, false); } AutoLoginCheckBox.IsChecked = App.Settings.AutologinEnabled; if (App.Settings.AutologinEnabled && savedAccount != null && !Keyboard.Modifiers.HasFlag(ModifierKeys.Shift)) { Log.Information("Engaging Autologin..."); try { #if DEBUG HandleLogin(true); return; #else if (!gateStatus) { var startLauncher = MessageBox.Show(Loc.Localize("MaintenanceAskOfficial", "Square Enix seems to be running maintenance work right now. The game shouldn't be launched. Do you want to start the official launcher to check for patches?") , "XIVLauncher", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes; if (startLauncher) { Util.StartOfficialLauncher(App.Settings.GamePath, SteamCheckBox.IsChecked == true); } App.Settings.AutologinEnabled = false; _isLoggingIn = false; } else { HandleLogin(true); return; } #endif } catch (Exception ex) { new ErrorWindow(ex, Loc.Localize("CheckLoginInfo", "Additionally, please check your login information or try again."), "AutoLogin") .ShowDialog(); App.Settings.AutologinEnabled = false; _isLoggingIn = false; } } else if (Keyboard.Modifiers.HasFlag(ModifierKeys.Shift)) { App.Settings.AutologinEnabled = false; AutoLoginCheckBox.IsChecked = false; } if (App.Settings.GamePath?.Exists != true) { var setup = new FirstTimeSetup(); setup.ShowDialog(); SettingsControl.ReloadSettings(); } Task.Run(() => SetupHeadlines()); ProblemCheck.RunCheck(); Show(); Activate(); Log.Information("MainWindow initialized."); }