Example #1
0
        public void Handle(IPEndPoint sender, SNMessageData messageData)
        {
            var playerLoginMessageData = (PlayerLoginMessageData)messageData;

            Task.Run(() =>
            {
                if (IsValidUser(playerLoginMessageData.Email, playerLoginMessageData.Password, out string persistentId))
                {
                    string token = tokenManager.GenerateToken(playerLoginMessageData.Email, persistentId);

                    tokenRepository.Add(token);

                    var msg = zoneServerNetPeer.CreateMessage();
                    var playerLoginSuccessMessageData   = new PlayerLoginSuccessMessageData();
                    playerLoginSuccessMessageData.Token = token;
                    playerLoginSuccessMessageData.Encode(msg);
                    zoneServerNetPeer.SendUnconnectedMessage(msg, sender);
                }
                else
                {
                    var msg = zoneServerNetPeer.CreateMessage();
                    var playerLoginErrorMessageData = new PlayerLoginErrorMessageData();
                    playerLoginErrorMessageData.Encode(msg);
                    zoneServerNetPeer.SendUnconnectedMessage(msg, sender);
                }
            });
        }
Example #2
0
        public SNMessageData GetMessageData(short type)
        {
            ClientMessageTypes header  = (ClientMessageTypes)type;
            SNMessageData      message = null;

            switch (header)
            {
                #region Authentification
            case ClientMessageTypes.PlayerLoginSuccess:
                message = new PlayerLoginSuccessMessageData();
                break;

            case ClientMessageTypes.PlayerLoginError:
                message = new PlayerLoginErrorMessageData();
                break;

            case ClientMessageTypes.SendCharacters:
                message = new SendCharactersMessageData();
                break;

            case ClientMessageTypes.CharacterSelected:
                message = new CharacterSelectedMessageData();
                break;
                #endregion

                #region Entities
            case ClientMessageTypes.EntityPosition:
                message = new EntityPositionMessageData();
                break;

            case ClientMessageTypes.CharacterDisconnected:
                message = new CharacterDisconnectedMessageData();
                break;
                #endregion

            default:
                loggingService.Log($"Cannot build client message {header.ToString()}", LogMessageType.WARNING);
                break;
            }

            return(message);
        }