示例#1
0
        public void OnPasswordRequestResponse(object sender, DialogResponseEventArgs e)
        {
            if (e.DialogButton != DialogButton.Left)
            {
                Response -= OnPasswordRequestResponse;
                e.Player.Kick();
                return;
            }
            PlayerData data = PlayerManager.Instance.GetCachedPlayerData(e.Player.Name);

            if (data == null)
            {
                Response -= OnPasswordRequestResponse;
                e.Player.Kick();
                // TODO: Logging
                return;
            }

            if (e.InputText != data.Password)
            {
                Response -= OnPasswordRequestResponse;
                var retrialDialog = new PasswordRequestDialog(true);
                retrialDialog.Response += retrialDialog.OnPasswordRequestResponse;
                retrialDialog.ShowAsync(e.Player);
                return;
            }
            Response -= OnPasswordRequestResponse;
            var emailDialog = new EmailRegistrationDialog();

            emailDialog.Response += emailDialog.OnEmailRegistrationDialogResponse;
            emailDialog.ShowAsync(e.Player);
        }
示例#2
0
        public void OnInputRegistrationData(object sender, DialogResponseEventArgs e)
        {
            if (e.DialogButton != DialogButton.Left)
            {
                Response -= OnInputRegistrationData;
                if (e.Player == null)
                {
                    return;
                }

                e.Player.SendClientMessage("Вы не ввели пароль");
                e.Player.Kick();
                return;
            }

            PlayerData data = PlayerManager.Instance.GetPlayerData(e.Player.Name);

            if (data != null)
            {
                if (data.Password == e.InputText)
                {
                    data.Authorized = true;
                }
            }
            else
            {
                Response -= OnInputRegistrationData;
                data      = new PlayerData
                {
                    UserName = e.Player.Name,
                    Password = e.InputText
                };
                PlayerManager.Instance.CachePlayerData(data);
                //TODO: проверить пароль на запрещенные символы
                var passRequestDialog = new PasswordRequestDialog();
                passRequestDialog.Response += passRequestDialog.OnPasswordRequestResponse;
                passRequestDialog.ShowAsync(e.Player);
            }
        }