public JoinedLobby(LobbyPlugin owner, LobbyDataPacket data, IMessageHandlerProvider client) { Data = data; client.SetHandler((ushort)OpCodes.LobbyMemberPropertyChanged, HandleMemberPropertyChanged); client.SetHandler((ushort)OpCodes.LeftLobby, HandleLeftLobbyMsg); client.SetHandler((ushort)OpCodes.LobbyChatMessage, HandleLobbyChatMessageMsg); client.SetHandler((ushort)OpCodes.LobbyMemberJoined, HandleLobbyMemberJoinedMsg); client.SetHandler((ushort)OpCodes.LobbyMemberLeft, HandleLobbyMemberLeftMsg); client.SetHandler((ushort)OpCodes.LobbyStateChange, HandleLobbyStateChangeMsg); client.SetHandler((ushort)OpCodes.LobbyStatusTextChange, HandleLobbyStatusTextChangeMsg); client.SetHandler((ushort)OpCodes.LobbyMemberChangedTeam, HandlePlayerTeamChangeMsg); client.SetHandler((ushort)OpCodes.LobbyMemberReadyStatusChange, HandleLobbyMemberReadyStatusChangeMsg); client.SetHandler((ushort)OpCodes.LobbyMasterChange, HandleLobbyMasterChangeMsg); client.SetHandler((ushort)OpCodes.LobbyPropertyChanged, HandleLobbyPropertyChanged); Properties = data.LobbyProperties; Members = data.Players; Teams = data.Teams; _lobbyServer = owner; }
public LobbyDataPacket GenerateLobbyData(LobbyUserExtension user) { var info = new LobbyDataPacket { LobbyType = Type ?? "", GameMaster = GameMaster != null ? GameMaster.Username : "", LobbyName = Name, LobbyId = Id, LobbyProperties = Properties, Players = Members.Values .ToDictionary(m => m.Username, GenerateMemberData), Teams = Teams.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); }