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 {