Esempio n. 1
0
        public SettingsPage(ILauncherConfigProvider launcherConfigProvider)
        {
            InitializeComponent();

            _launcherConfigProvider = launcherConfigProvider;

            argsTextBox.Text = _launcherConfigProvider.GetGameArguments();
        }
Esempio n. 2
0
        private async void startGameButton_Click(object sender, EventArgs e)
        {
            string username = (string)accountsListBox.SelectedItem;

            Account account = _launcherConfigProvider.GetAccounts().Find(
                acc => acc.Username == username);

            if (account == null)
            {
                MessageBox.Show("Select account.");
                return;
            }

            var jwt = new JwtSecurityToken(account.Token.AccessToken);

            try
            {
                long validTo = jwt.ValidTo.Ticks;

                if (DateTime.Now.Ticks > validTo)
                {
                    Token token = await _forgameAuthProvider.Refresh(account.Token.RefreshToken);

                    _launcherConfigProvider.AddOrUpdateAccount(new Account {
                        Username = username,
                        Token    = token
                    });

                    account.Token = token;
                }

                GameTokenCode gameTokenCode;

                try
                {
                    gameTokenCode = await _gameAuthProvider.GetGameTokenCode(
                        account.Token.AccessToken);
                }
                catch (Exception)
                {
                    MessageBox.Show("Something went wrong. Re-login to your account.");
                    return;
                }

                _gameManager.Launch("bns-ru", new GameLaunchData {
                    Login     = gameTokenCode.Login,
                    Password  = gameTokenCode.Password,
                    Version   = _launcherConfigProvider.GetGameVersion(),
                    Arguments = _launcherConfigProvider.GetGameArguments()
                });

                if (_launcherConfigProvider.GetAutoCloseLauncher())
                {
                    var mainForm = (MainForm)Parent;
                    mainForm.Close();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }