public static LobbyServerProtocol GetClientConnection(long accountId) { LobbyServerProtocol clientConnection = null; ActiveConnections.TryGetValue(accountId, out clientConnection); return(clientConnection); }
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); }
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); }
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); }
public static void OnPlayerDisconnect(LobbyServerProtocol client) { ActivePlayers.Remove(client.AccountId); SessionTokenAccountIDCache.Remove(client.SessionToken); ActiveConnections.Remove(client.AccountId); }