Browse Source

Added logging to child voice clients

tags/docs-0.9
Brandon Smith 9 years ago
parent
commit
6759557526
3 changed files with 23 additions and 10 deletions
  1. +6
    -2
      src/Discord.Net/DiscordClient.cs
  2. +8
    -3
      src/Discord.Net/DiscordClientConfig.cs
  3. +9
    -5
      src/Discord.Net/DiscordSimpleClient.cs

+ 6
- 2
src/Discord.Net/DiscordClient.cs View File

@@ -23,6 +23,7 @@ namespace Discord
private readonly ConcurrentQueue<Message> _pendingMessages;
private readonly ConcurrentDictionary<string, DiscordSimpleClient> _voiceClients;
private bool _sentInitialLog;
private uint _nextVoiceClientId;

/// <summary> Returns the current logged-in user. </summary>
public User CurrentUser => _currentUser;
@@ -713,11 +714,14 @@ namespace Discord
var client = _voiceClients.GetOrAdd(serverId, _ =>
{
var config = _config.Clone();
config.LogLevel = (LogMessageSeverity)Math.Min((int)_config.LogLevel, (int)LogMessageSeverity.Warning);
config.LogLevel = _config.LogLevel;// (LogMessageSeverity)Math.Min((int)_config.LogLevel, (int)LogMessageSeverity.Warning);
config.EnableVoiceMultiserver = false;
config.VoiceOnly = true;
config.VoiceClientId = unchecked(++_nextVoiceClientId);
return new DiscordSimpleClient(config, serverId);
});
await client.Connect(_gateway, _token).ConfigureAwait(false);
client.LogMessage += (s, e) => RaiseOnLog(e.Severity, e.Source, $"(#{client.Config.VoiceClientId}) {e.Message}");
await client.Connect(_gateway, _token).ConfigureAwait(false);
return client;
}



+ 8
- 3
src/Discord.Net/DiscordClientConfig.cs View File

@@ -48,9 +48,6 @@ namespace Discord
/// <summary> (Experimental) Enables the voice websocket and UDP client. This option requires the libsodium .dll or .so be in the local lib/ folder. </summary>
public bool EnableVoiceEncryption { get { return _enableVoiceEncryption; } set { SetValue(ref _enableVoiceEncryption, value); } }
private bool _enableVoiceEncryption = true;
/// <summary> (Experimental) Enables the client to be simultaneously connected to multiple channels at once (Discord still limits you to one channel per server). </summary>
public bool EnableVoiceMultiserver { get { return _enableVoiceMultiserver; } set { SetValue(ref _enableVoiceMultiserver, value); } }
private bool _enableVoiceMultiserver = false;
#else
internal DiscordVoiceMode VoiceMode => DiscordVoiceMode.Disabled;
internal bool EnableVoiceEncryption => false;
@@ -63,6 +60,14 @@ namespace Discord
public bool TrackActivity { get { return _trackActivity; } set { SetValue(ref _trackActivity, value); } }
private bool _trackActivity = true;

/// <summary> (Experimental) Enables the client to be simultaneously connected to multiple channels at once (Discord still limits you to one channel per server). </summary>
public bool EnableVoiceMultiserver { get { return _enableVoiceMultiserver; } set { SetValue(ref _enableVoiceMultiserver, value); } }
private bool _enableVoiceMultiserver = false;
internal bool VoiceOnly { get { return _voiceOnly; } set { SetValue(ref _voiceOnly, value); } }
private bool _voiceOnly;
internal uint VoiceClientId { get { return _voiceClientId; } set { SetValue(ref _voiceClientId, value); } }
private uint _voiceClientId;

//Lock
private bool _isLocked;
internal void Lock() { _isLocked = true; }


+ 9
- 5
src/Discord.Net/DiscordSimpleClient.cs View File

@@ -61,7 +61,7 @@ namespace Discord
_cancelToken = new CancellationToken(true);
_disconnectedEvent = new ManualResetEvent(true);
_connectedEvent = new ManualResetEventSlim(false);
_dataSocket = CreateDataSocket();
if (_enableVoice)
_voiceSocket = CreateVoiceSocket();
@@ -86,11 +86,15 @@ namespace Discord
if (e.WasUnexpected)
await socket.Reconnect(_token);
};
socket.LogMessage += (s, e) => RaiseOnLog(e.Severity, LogMessageSource.DataWebSocket, e.Message);
if (_config.LogLevel >= LogMessageSeverity.Info)
if (!_config.VoiceOnly)
{
socket.Connected += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.DataWebSocket, "Connected");
socket.Disconnected += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.DataWebSocket, "Disconnected");
socket.LogMessage += (s, e) => RaiseOnLog(e.Severity, LogMessageSource.DataWebSocket, e.Message);
if (_config.LogLevel >= LogMessageSeverity.Info)
{
socket.Connected += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.DataWebSocket, "Connected");
socket.Disconnected += (s, e) => RaiseOnLog(LogMessageSeverity.Info, LogMessageSource.DataWebSocket, "Disconnected");
}
}

socket.ReceivedEvent += (s, e) => OnReceivedEvent(e);


Loading…
Cancel
Save