From a77f215df2da6e9f98fad164c5f4a140c3079bdf Mon Sep 17 00:00:00 2001 From: RogueException Date: Wed, 7 Oct 2015 15:50:22 -0300 Subject: [PATCH] Use a better method for detecting if a voice socket is needed. --- src/Discord.Net/DiscordClient.cs | 4 ++-- src/Discord.Net/DiscordClientConfig.cs | 3 +++ src/Discord.Net/DiscordSimpleClient.cs | 10 ++++++---- src/Discord.Net/DiscordSimpleClientConfig.cs | 1 + 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/Discord.Net/DiscordClient.cs b/src/Discord.Net/DiscordClient.cs index 986e21838..1e2964ccb 100644 --- a/src/Discord.Net/DiscordClient.cs +++ b/src/Discord.Net/DiscordClient.cs @@ -52,7 +52,7 @@ namespace Discord /// Initializes a new instance of the DiscordClient class. public DiscordClient(DiscordClientConfig config = null) - : base(config, enableVoice: config.VoiceMode != DiscordVoiceMode.Disabled && !config.EnableVoiceMultiserver) + : base(config) { _rand = new Random(); _api = new DiscordAPIClient(_config.LogLevel, _config.UserAgent, _config.APITimeout); @@ -740,7 +740,7 @@ namespace Discord config.EnableVoiceMultiserver = false; config.VoiceOnly = true; config.VoiceClientId = unchecked(++_nextVoiceClientId); - return new DiscordSimpleClient(config, true, serverId); + return new DiscordSimpleClient(config, serverId); }); client.LogMessage += (s, e) => RaiseOnLog(e.Severity, e.Source, $"(#{client.Config.VoiceClientId}) {e.Message}"); await client.Connect(_gateway, _token).ConfigureAwait(false); diff --git a/src/Discord.Net/DiscordClientConfig.cs b/src/Discord.Net/DiscordClientConfig.cs index 3a82cf653..c6e37b237 100644 --- a/src/Discord.Net/DiscordClientConfig.cs +++ b/src/Discord.Net/DiscordClientConfig.cs @@ -27,6 +27,9 @@ namespace Discord public bool AckMessages { get { return _ackMessages; } set { SetValue(ref _ackMessages, value); } } private bool _ackMessages = false; + //Internal + internal override bool EnableVoice => base.EnableVoice && !EnableVoiceMultiserver; + public new DiscordClientConfig Clone() { var config = this.MemberwiseClone() as DiscordClientConfig; diff --git a/src/Discord.Net/DiscordSimpleClient.cs b/src/Discord.Net/DiscordSimpleClient.cs index 90724d69d..82b60621a 100644 --- a/src/Discord.Net/DiscordSimpleClient.cs +++ b/src/Discord.Net/DiscordSimpleClient.cs @@ -51,14 +51,11 @@ namespace Discord /// Initializes a new instance of the DiscordClient class. public DiscordSimpleClient(DiscordSimpleClientConfig config = null) - : this(config, enableVoice: config.VoiceMode != DiscordVoiceMode.Disabled) { } - internal DiscordSimpleClient(DiscordSimpleClientConfig config = null, bool enableVoice = false, string voiceServerId = null) { _config = config ?? new DiscordSimpleClientConfig(); _config.Lock(); - _enableVoice = enableVoice; - _voiceServerId = voiceServerId; + _enableVoice = _config.EnableVoice; _state = (int)DiscordClientState.Disconnected; _cancelToken = new CancellationToken(true); @@ -69,6 +66,11 @@ namespace Discord if (_enableVoice) _voiceSocket = CreateVoiceSocket(); } + internal DiscordSimpleClient(DiscordSimpleClientConfig config = null, string voiceServerId = null) + : this(config) + { + _voiceServerId = voiceServerId; + } internal virtual DataWebSocket CreateDataSocket() { diff --git a/src/Discord.Net/DiscordSimpleClientConfig.cs b/src/Discord.Net/DiscordSimpleClientConfig.cs index 5b7bc6674..cf5bcb519 100644 --- a/src/Discord.Net/DiscordSimpleClientConfig.cs +++ b/src/Discord.Net/DiscordSimpleClientConfig.cs @@ -56,6 +56,7 @@ namespace Discord private bool _voiceOnly; internal uint VoiceClientId { get { return _voiceClientId; } set { SetValue(ref _voiceClientId, value); } } private uint _voiceClientId; + internal virtual bool EnableVoice => _voiceMode != DiscordVoiceMode.Disabled; internal string UserAgent {