コード例 #1
0
        private void HandleLogins(RestDataRequestMessage message, ref RestResponse response, RestRequestMessage request)
        {
            var loginMessage = message.GetMessage() as InitializeSession;

            var session = new SessionCredentials(loginMessage.PeerId, SessionKey.NewGuid());

            var playerdata = new PlayerData();

            playerdata.FillWithNewPlayer(loginMessage.PlayerId, new [] { "FreeForAll", "Captain", "Siege", "Duel", "TeamDeathMatch", "FreeForAll" });
            playerdata.LastPlayerName = loginMessage.PlayerName;
            playerdata.LastGameTypes  = new[] { "Captain" };
            var user = new User {
                Id = session, QueuedMessages = new Queue <RestResponseMessage>(), PlayerData = playerdata
            };

            this._context.Users.Add(user);
            var initializeSessionResponse = new InitializeSessionResponse(playerdata,
                                                                          _context.Status);

            response.FunctionResult =
                new RestDataFunctionResult(new LoginResult(session.PeerId, session.SessionKey,
                                                           initializeSessionResponse));
            response.UserCertificate = session.SessionKey.ToByteArray();
            response.SetSuccessful(true, "ResultFromServerTask");
        }
コード例 #2
0
        private void HandleLogin(RestDataRequestMessage message, InitializeSession messageContent,
                                 ref RestResponse response, RestRequestMessage request)
        {
            var session = new SessionCredentials(messageContent.PeerId, SessionKey.NewGuid());

            var playerdata = new PlayerData();

            playerdata.FillWithNewPlayer(messageContent.PlayerId,
                                         new[] { "FreeForAll", "Captain", "Siege", "Duel", "TeamDeathMatch", "FreeForAll" });
            playerdata.LastPlayerName = messageContent.PlayerName;
            playerdata.LastGameTypes  = new[] { "Captain" };

            var user = new User
            {
                Id = session, QueuedMessages = new Queue <RestResponseMessage>(), PlayerData = playerdata
            };

            if (messageContent.PlayerId.IsValidSteamId())
            {
                if (_context.SteamIDS.Contains(messageContent.PlayerId.Id2))
                {
                    user.CanHost = true;
                }
            }

            var userStatus = GetServerStatusForUser(user);

            _context.Users.Add(user);
            var initializeSessionResponse = new InitializeSessionResponse(playerdata, userStatus
                                                                          );

            response.FunctionResult =
                new RestDataFunctionResult(new LoginResult(session.PeerId, session.SessionKey,
                                                           initializeSessionResponse));
            response.UserCertificate = session.SessionKey.ToByteArray();
            response.SetSuccessful(true, "ResultFromServerTask");
        }