public VoiceChatPacketRouter(IMultiplayerSessionManager sessionManager, VoipSender voipSender, ICodecFactory codecFactory, DiContainer container) { _container = container; SessionManager = sessionManager; //ConnectionManager = connectionManager; //VoipReceiver = voipReceiver; CodecFactory = codecFactory; VoipSender = voipSender; #if DEBUG dummyReceiver = container.InstantiateComponentOnNewGameObject <VoipReceiver>(); var settings = new Codecs.Opus.OpusSettings() { SampleRate = 48000, Channels = 1 }; dummyReceiver.Initialize(sessionManager.localPlayer, codecFactory.CreateDecoder(Codecs.Opus.OpusDefaults.CodecId, settings)); voipSender.OnAudioGenerated += (s, e) => { dummyReceiver.HandleAudioDataReceived(s, e); }; #endif AddEvents(); sessionManager.RegisterSerializer((MultiplayerSessionManager.MessageType) 128, _mainSerializer); _mainSerializer.RegisterSubSerializer((byte)VoipPacketType.VoiceData, _voipDataSerializer); _mainSerializer.RegisterSubSerializer((byte)VoipPacketType.InfoRequest, _voipMetadataSerializer); _mainSerializer.RegisterSubSerializer((byte)VoipPacketType.VoiceMetadata, _voipMetadataSerializer); _voipDataSerializer.RegisterCallback((byte)VoipPacketType.VoiceData, HandleVoipDataPacket, VoipDataPacket.Obtain); Plugin.Log?.Debug($"VoiceChatPacketRouter Constructed."); foreach (IConnectedPlayer?player in sessionManager.connectedPlayers) { if (!player.isMe) { CreatePlayerVoipReceiver(player.userId, player); } } //if (sessionManager.isConnected) IsConnected = true; }
public void Initialize() { Plugin.Log?.Info("Setting up SessionManager"); _multiplayerSessionManager.RegisterSerializer((MultiplayerSessionManager.MessageType) 4, _packetSerializer); _multiplayerSessionManager.connectedEvent += connectedEvent; _multiplayerSessionManager.connectionFailedEvent += connectionFailedEvent; _multiplayerSessionManager.disconnectedEvent += disconnectedEvent; _multiplayerSessionManager.playerConnectedEvent += HandlePlayerConnected; _multiplayerSessionManager.playerDisconnectedEvent += HandlePlayerDisconnected; _multiplayerSessionManager.playerStateChangedEvent += HandlePlayerStateChanged; _multiplayerSessionManager.SetLocalPlayerState("modded", true); _multiplayerSessionManager.SetLocalPlayerState("customsongs", Plugin.Config.CustomSongs); _multiplayerSessionManager.SetLocalPlayerState("enforcemods", Plugin.Config.EnforceMods); }
public void Initialize() { _sessionManager.RegisterSerializer((MultiplayerSessionManager.MessageType) 100, _packetSerializer); }
public void Initialize() { _multiplayerSessionManager = Resources.FindObjectsOfTypeAll <MultiplayerSessionManager>().First(); _sessionManager.RegisterSerializer((MultiplayerSessionManager.MessageType) 100, _serializer); }