Пример #1
0
        public static LobbyServerProtocol GetClientConnection(long accountId)
        {
            LobbyServerProtocol clientConnection = null;

            ActiveConnections.TryGetValue(accountId, out clientConnection);
            return(clientConnection);
        }
Пример #2
0
        public static PlayerUpdateStatusResponse OnPlayerUpdateStatusRequest(LobbyServerProtocol client, PlayerUpdateStatusRequest request)
        {
            // TODO: notify this client's friends the status change

            PlayerUpdateStatusResponse response = new PlayerUpdateStatusResponse()
            {
                AccountId    = client.AccountId,
                StatusString = request.StatusString,
                ResponseId   = request.RequestId
            };

            return(response);
        }
Пример #3
0
        public static LobbyPlayerGroupInfo GetGroupInfo(long accountId)
        {
            // TODO
            LobbyServerProtocol client = SessionManager.GetClientConnection(accountId);

            LobbyPlayerGroupInfo groupInfo = new LobbyPlayerGroupInfo()
            {
                SelectedQueueType = client.SelectedGameType,
                MemberDisplayName = client.UserName,
                //InAGroup = false,
                //IsLeader = true,
                Members = new List <UpdateGroupMemberData>(),
            };

            return(groupInfo);
        }
Пример #4
0
        public static LobbyPlayerInfo OnPlayerConnect(LobbyServerProtocol client, RegisterGameClientRequest clientRequest)
        {
            long sessionToken = GeneratedSessionToken++;

            Database.Account user = Database.Account.GetByUserName(clientRequest.AuthInfo.Handle);

            client.AccountId           = user.AccountId;
            client.SessionToken        = sessionToken;
            client.UserName            = user.UserName;
            client.SelectedGameType    = user.LastSelectedGameType;
            client.SelectedSubTypeMask = 0;

            LobbyPlayerInfo playerInfo = new LobbyPlayerInfo
            {
                AccountId                  = user.AccountId,
                BannerID                   = user.BannerID,
                BotCanTaunt                = false,
                BotsMasqueradeAsHumans     = false,
                CharacterInfo              = CharacterManager.GetCharacterInfo(user.AccountId, user.LastCharacter),
                ControllingPlayerId        = 0,
                EffectiveClientAccessLevel = ClientAccessLevel.Full,
                EmblemID                   = user.EmblemID,
                Handle           = user.UserName,
                IsGameOwner      = true,
                IsLoadTestBot    = false,
                IsNPCBot         = false,
                PlayerId         = 0,
                ReadyState       = ReadyState.Unknown,
                ReplacedWithBots = false,
                RibbonID         = user.RibbonID,
                TitleID          = user.TitleID,
                TitleLevel       = 1
            };

            ActivePlayers.Add(user.AccountId, playerInfo);
            SessionTokenAccountIDCache.Add(sessionToken, playerInfo.AccountId);
            ActiveConnections.Add(user.AccountId, client);

            return(playerInfo);
        }
Пример #5
0
 public static void OnPlayerDisconnect(LobbyServerProtocol client)
 {
     ActivePlayers.Remove(client.AccountId);
     SessionTokenAccountIDCache.Remove(client.SessionToken);
     ActiveConnections.Remove(client.AccountId);
 }