/// <summary> Initializes a new instance of the DiscordClient class. </summary> public DiscordSimpleClient(DiscordClientConfig config = null) { _config = config ?? new DiscordClientConfig(); _config.Lock(); _enableVoice = config.VoiceMode != DiscordVoiceMode.Disabled && !config.EnableVoiceMultiserver; _state = (int)DiscordClientState.Disconnected; _cancelToken = new CancellationToken(true); _disconnectedEvent = new ManualResetEvent(true); _connectedEvent = new ManualResetEventSlim(false); _dataSocket = CreateDataSocket(); if (_enableVoice) _voiceSocket = CreateVoiceSocket(); }
internal virtual VoiceWebSocket CreateVoiceSocket() { var socket = new VoiceWebSocket(this); socket.LogMessage += (s, e) => RaiseOnLog(e.Severity, LogMessageSource.VoiceWebSocket, e.Message); socket.Connected += (s, e) => RaiseVoiceConnected(); socket.Disconnected += async (s, e) => { RaiseVoiceDisconnected(socket.CurrentServerId, e); if (e.WasUnexpected) await socket.Reconnect(); }; if (_config.LogLevel >= LogMessageSeverity.Info) { socket.Connected += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.VoiceWebSocket, "Connected"); socket.Disconnected += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.VoiceWebSocket, "Disconnected"); } return socket; }