Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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);
        }