Ejemplo n.º 1
0
        static void client_LoginFailed(object sender, BNSharp.Chat.LoginFailedEventArgs e)
        {
            PrintTidTs(DateTime.Now);
            console.OutputForegroundColor = ConsoleColor.Red;
            console.Write("Login failed ({0}) for ", e.Reason);
            console.OutputForegroundColor = ConsoleColor.Yellow;
            console.WriteLine(_settings.Username);

            if (e.Reason == LoginFailureReason.AccountDoesNotExist)
            {
                console.OutputForegroundColor = ConsoleColor.Blue;
                console.WriteLine("Attempting to create a new account using the provided credentials...");
                (sender as BattleNetClient).CreateAccount(_settings.Username, _settings.Password);
            }
            else
            {
                LoginWithNewCredentials(sender);
            }
        }
Ejemplo n.º 2
0
        private async void HandleLogonResponse2(BncsReader dr)
        {
            int success = dr.ReadInt32();
            if (success == 0)
            {
                OnLoginSucceeded();
                ClassicProduct product = _settings.Client;
                if (product.UsesUdpPing)
                {
                    BncsPacket pck = new BncsPacket(BncsPacketId.UdpPingResponse, _storage.Acquire());
                    pck.InsertDwordString("bnet");
                    await pck.SendAsync(_connection);
                }

                EnterChat();
            }
            else
            {
                LoginFailureReason reason = LoginFailureReason.Unknown;
                switch (success)
                {
                    case 1: // account DNE
                        reason = LoginFailureReason.AccountDoesNotExist; break;
                    case 2: // invalid password
                        reason = LoginFailureReason.InvalidAccountOrPassword; break;
                    case 6: // account closed
                        reason = LoginFailureReason.AccountClosed; break;
                }
                LoginFailedEventArgs args = new LoginFailedEventArgs(reason, success, dr.ReadCString());
                OnLoginFailed(args);
            }
        }
Ejemplo n.º 3
0
        private async void HandleLogonResponse(BncsReader dr)
        {
            int status = dr.ReadInt32();
            if (status == 1)
            {
                OnLoginSucceeded();
                ClassicProduct product = _settings.Client;
                if (product.UsesUdpPing)
                {
                    BncsPacket pck = new BncsPacket(BncsPacketId.UdpPingResponse, _storage.Acquire());
                    pck.InsertDwordString("bnet");
                    await pck.SendAsync(_connection);
                }

                EnterChat();
            }
            else
            {
                LoginFailedEventArgs args = new LoginFailedEventArgs(LoginFailureReason.InvalidAccountOrPassword, status);
                OnLoginFailed(args);
            }
        }