예제 #1
0
        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();
        }
예제 #2
0
        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();
        }
예제 #3
0
        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();
        }