Пример #1
0
		/// <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();
		}
Пример #2
0
		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;
		}