public JoinedLobby(LobbyDataPacket data, IClientSocket connection) { Data = data; _connection = connection; connection.SetHandler((short)MsfOpCodes.LobbyMemberPropertyChanged, HandleMemberPropertyChanged); connection.SetHandler((short)MsfOpCodes.LeftLobby, HandleLeftLobbyMsg); connection.SetHandler((short)MsfOpCodes.LobbyChatMessage, HandleLobbyChatMessageMsg); connection.SetHandler((short)MsfOpCodes.LobbyMemberJoined, HandleLobbyMemberJoinedMsg); connection.SetHandler((short)MsfOpCodes.LobbyMemberLeft, HandleLobbyMemberLeftMsg); connection.SetHandler((short)MsfOpCodes.LobbyStateChange, HandleLobbyStateChangeMsg); connection.SetHandler((short)MsfOpCodes.LobbyStatusTextChange, HandleLobbyStatusTextChangeMsg); connection.SetHandler((short)MsfOpCodes.LobbyMemberChangedTeam, HandlePlayerTeamChangeMsg); connection.SetHandler((short)MsfOpCodes.LobbyMemberReadyStatusChange, HandleLobbyMemberReadyStatusChangeMsg); connection.SetHandler((short)MsfOpCodes.LobbyMasterChange, HandleLobbyMasterChangeMsg); connection.SetHandler((short)MsfOpCodes.LobbyPropertyChanged, HandleLobbyPropertyChanged); Properties = data.LobbyProperties; Members = data.Players; Teams = data.Teams; }
public LobbyDataPacket GenerateLobbyData(LobbyUserPeerExtension user) { var info = new LobbyDataPacket { LobbyType = Type ?? "", GameMaster = GameMaster != null ? GameMaster.Username : "", LobbyName = Name, LobbyId = Id, LobbyProperties = propertiesList, Players = membersList.Values .ToDictionary(m => m.Username, GenerateMemberData), Teams = teamsList.Values.ToDictionary(t => t.Name, t => t.GenerateData()), Controls = Controls, LobbyState = State, MaxPlayers = MaxPlayers, EnableTeamSwitching = Config.EnableTeamSwitching, EnableReadySystem = Config.EnableReadySystem, EnableManualStart = Config.EnableManualStart, CurrentUserUsername = TryGetUsername(user.Peer) }; return(info); }