public MainWindow() { InitializeComponent(); var p = ConsoleTextBox.Document.Blocks.FirstBlock as Paragraph; ConsoleTextBox.Document.Blocks.Clear(); config = new ConfigurationBuilder <IAppSettings>() .UseJsonFile(Path.Join(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "\\AmongUsCapture\\AmongUsGUI", "Settings.json")).Build(); context = new UserDataContext(DialogCoordinator.Instance, config); DataContext = context; config.PropertyChanged += ConfigOnPropertyChanged; GameMemReader.getInstance().GameStateChanged += GameStateChangedHandler; GameMemReader.getInstance().PlayerChanged += UserForm_PlayerChanged; GameMemReader.getInstance().DisplayImposter += UserForm_DisplayImposter; GameMemReader.getInstance().ChatMessageAdded += OnChatMessageAdded; GameMemReader.getInstance().JoinedLobby += OnJoinedLobby; IPCAdapter.getInstance().OnToken += (sender, token) => { this.BeginInvoke((w) => { if (!w.IsVisible) { w.Show(); } if (w.WindowState == WindowState.Minimized) { w.WindowState = WindowState.Normal; } w.Activate(); w.Topmost = true; // important w.Topmost = false; // important w.Focus(); // important w.Activate(); }); }; //ApplyDarkMode(); }
public MainWindow() { InitializeComponent(); var p = ConsoleTextBox.Document.Blocks.FirstBlock as Paragraph; ConsoleTextBox.Document.Blocks.Clear(); config = new ConfigurationBuilder <IAppSettings>() .UseJsonFile(Path.Join(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "\\AmongUsCapture\\AmongUsGUI", "Settings.json")).Build(); context = new UserDataContext(DialogCoordinator.Instance, config); DataContext = context; config.PropertyChanged += ConfigOnPropertyChanged; App.handler.OnReady += (sender, args) => { App.socket.AddHandler(App.handler); }; if (context.Settings.discordToken != "") { Task.Factory.StartNew(() => { Thread.Sleep(2000); App.handler.Init(context.Settings.discordToken); }); } else { Task.Factory.StartNew(() => { Thread.Sleep(2000); WriteConsoleLineFormatted("Discord", Color.Red, "You do not have a self-host discord token set. Enabling this in settings will increase performance."); }); } GameMemReader.getInstance().GameStateChanged += GameStateChangedHandler; GameMemReader.getInstance().PlayerChanged += UserForm_PlayerChanged; GameMemReader.getInstance().ChatMessageAdded += OnChatMessageAdded; GameMemReader.getInstance().JoinedLobby += OnJoinedLobby; GameMemReader.getInstance().GameOver += OnGameOver; IPCAdapter.getInstance().OnToken += (sender, token) => { this.BeginInvoke((w) => { if (!w.context.Settings.FocusOnToken) { return; } if (!w.IsVisible) { w.Show(); } if (w.WindowState == WindowState.Minimized) { w.WindowState = WindowState.Normal; } w.Activate(); w.Focus(); // important }); }; Version version = new Version(context.Version); Version latestVersion = new Version(context.LatestVersion); if (latestVersion.CompareTo(version) > 0) { this.ShowMessageAsync("Caution", $"We've detected you're using an older version of AmongUsCapture!\nYour version: {version}\nLatest version: {latestVersion}", MessageDialogStyle.AffirmativeAndNegative, new MetroDialogSettings { AffirmativeButtonText = "Download", NegativeButtonText = "No thanks", DefaultButtonFocus = MessageDialogResult.Affirmative }).ContinueWith( task => { if (task.Result == MessageDialogResult.Affirmative) { OpenBrowser(@"https://github.com/denverquane/amonguscapture/releases/latest/"); } }); } //ApplyDarkMode(); }
public MainWindow() { InitializeComponent(); string appFolder = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName); string appName = Path.GetFileNameWithoutExtension(Process.GetCurrentProcess().MainModule.FileName); string appExtension = Path.GetExtension(Process.GetCurrentProcess().MainModule.FileName); string archivePath = Path.Combine(appFolder, appName + "_Old" + appExtension); if (File.Exists(archivePath)) { Updated = true; try { //Will wait for the other program to exit. var me = Process.GetCurrentProcess(); Process[] aProcs = Process.GetProcessesByName(me.ProcessName); aProcs = aProcs.Where(x => x.Id != me.Id).ToArray(); if (aProcs != null && aProcs.Length > 0) { aProcs[0].WaitForExit(1000); } File.Delete(archivePath); } catch (Exception e) { Console.WriteLine("Could not delete old file."); } } else { Updated = false; } Paragraph p = ConsoleTextBox.Document.Blocks.FirstBlock as Paragraph; ConsoleTextBox.Document.Blocks.Clear(); try { config = new ConfigurationBuilder <IAppSettings>() .UseJsonFile(Path.Join(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "\\AmongUsCapture\\AmongUsGUI", "Settings.json")).Build(); } catch (Newtonsoft.Json.JsonReaderException e) //Delete file and recreate config { Console.WriteLine($"Bad config. Clearing."); File.Delete(Path.Join(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "\\AmongUsCapture\\AmongUsGUI", "Settings.json")); config = new ConfigurationBuilder <IAppSettings>() .UseJsonFile(Path.Join(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "\\AmongUsCapture\\AmongUsGUI", "Settings.json")).Build(); } context = new UserDataContext(DialogCoordinator.Instance, config); DataContext = context; config.PropertyChanged += ConfigOnPropertyChanged; App.handler.OnReady += (sender, args) => { App.socket.AddHandler(App.handler); }; GameMemReader.getInstance().GameStateChanged += GameStateChangedHandler; GameMemReader.getInstance().PlayerChanged += UserForm_PlayerChanged; GameMemReader.getInstance().ChatMessageAdded += OnChatMessageAdded; GameMemReader.getInstance().JoinedLobby += OnJoinedLobby; GameMemReader.getInstance().GameOver += OnGameOver; IPCAdapter.getInstance().OnToken += (sender, token) => { this.BeginInvoke((w) => { if (!w.context.Settings.FocusOnToken) { return; } if (!w.IsVisible) { w.Show(); } if (w.WindowState == WindowState.Minimized) { w.WindowState = WindowState.Normal; } w.Activate(); w.Focus(); // important }); }; if (!context.Settings.discordTokenEncrypted) //Encrypt discord token if it is not encrypted. { context.Settings.discordToken = JsonConvert.SerializeObject(encryptToken(context.Settings.discordToken)); context.Settings.discordTokenEncrypted = true; } byte[] encryptedBuff = JsonConvert.DeserializeObject <byte[]>(context.Settings.discordToken); discordTokenBox.Password = decryptToken(encryptedBuff); System.Windows.Media.Color savedColor; try { savedColor = JsonConvert.DeserializeObject <System.Windows.Media.Color>(context.Settings.SelectedAccent); AccentColorPicker.SelectedColor = savedColor; string BaseColor; if (context.Settings.DarkMode) { BaseColor = ThemeManager.BaseColorDark; } else { BaseColor = ThemeManager.BaseColorLight; } Theme newTheme = new Theme(name: "CustomTheme", displayName: "CustomTheme", baseColorScheme: BaseColor, colorScheme: "CustomAccent", primaryAccentColor: savedColor, showcaseBrush: new SolidColorBrush(savedColor), isRuntimeGenerated: true, isHighContrast: false); ThemeManager.Current.ChangeTheme(this, newTheme); } catch (Exception e) { } //ApplyDarkMode(); }