protected override async Task ProcessPacket(ClientState client, Login packet) { var account = await _accountRepository.FindByUsername(packet.Username); if (account == null || !BCrypt.Net.BCrypt.Verify(packet.Password, account.Password)) { await client.Send(new LoginResult { Result = LoginResultEnum.BadUsernameOrPassword }); } else { client.Account = account; client.Characters = await _characterRepository.FindByAccountId(account.Id); client.Stage = Stage.Characters; await client.Send(new LoginResult { Result = LoginResultEnum.Succcess, Characters = client.Characters }); } }