public void OnPlayerConnected(IPlayer client, string reason) { VoiceClient voiceClient = new VoiceClient(client, VoiceManager.GetTeamSpeakName(), SharedData.VoiceRanges[0]); lock (VoiceManager._voiceClients) { VoiceManager._voiceClients.Add(client, voiceClient); } //Console.WriteLine($"{client} connected"); client.Emit(Event.SaltyChat_Initialize, voiceClient.TeamSpeakName, VoiceManager.ServerUniqueIdentifier, VoiceManager.SoundPack, VoiceManager.IngameChannel, VoiceManager.IngameChannelPassword); }
public static bool TryGetVoiceClient(IPlayer client, out VoiceClient voiceClient) { lock (VoiceManager._voiceClients) { if (VoiceManager._voiceClients.TryGetValue(client, out voiceClient)) { return(true); } } voiceClient = null; return(false); }
internal void AddMember(VoiceClient voiceClient) { lock (this._members) { if (!this._members.Any(m => m.VoiceClient == voiceClient)) { this._members.Add(new RadioChannelMember(this, voiceClient)); voiceClient.Player.Emit(Event.SaltyChat_SetRadioChannel, this.Name); foreach (RadioChannelMember member in this._members.Where(m => m.IsSending)) { voiceClient.Player.Emit(Event.SaltyChat_IsSending, member.VoiceClient.Player.Id, true); } } } }
internal void RemoveMember(VoiceClient voiceClient) { lock (this._members) { RadioChannelMember member = this._members.FirstOrDefault(m => m.VoiceClient == voiceClient); if (member != null) { if (member.IsSending) { if (member.VoiceClient.RadioSpeaker) { foreach (VoiceClient client in VoiceManager.VoiceClients) { client.Player.Emit(Event.SaltyChat_IsSendingRelayed, voiceClient.Player.Id, false, true, false, "{}"); } } else { foreach (RadioChannelMember channelMember in this._members) { channelMember.VoiceClient.Player.Emit(Event.SaltyChat_IsSending, voiceClient.Player.Id, false); } } } this._members.Remove(member); voiceClient.Player.Emit(Event.SaltyChat_SetRadioChannel, ""); foreach (RadioChannelMember channelMember in this._members.Where(m => m.IsSending)) { voiceClient.Player.Emit(Event.SaltyChat_IsSending, channelMember.VoiceClient.Player.Id, false); } } } }
internal bool IsMember(VoiceClient voiceClient) { return(this.Members.Any(m => m.VoiceClient == voiceClient)); }
internal RadioChannelMember(RadioChannel radioChannel, VoiceClient voiceClient) { this.RadioChannel = radioChannel; this.VoiceClient = voiceClient; }
internal bool TryGetMember(VoiceClient voiceClient, out RadioChannelMember radioChannelMember) { radioChannelMember = this.Members.FirstOrDefault(m => m.VoiceClient == voiceClient); return(radioChannelMember != null); }