| @@ -52,7 +52,7 @@ namespace Discord | |||||
| /// <summary> Initializes a new instance of the DiscordClient class. </summary> | /// <summary> Initializes a new instance of the DiscordClient class. </summary> | ||||
| public DiscordClient(DiscordClientConfig config = null) | public DiscordClient(DiscordClientConfig config = null) | ||||
| : base(config, enableVoice: config.VoiceMode != DiscordVoiceMode.Disabled && !config.EnableVoiceMultiserver) | |||||
| : base(config) | |||||
| { | { | ||||
| _rand = new Random(); | _rand = new Random(); | ||||
| _api = new DiscordAPIClient(_config.LogLevel, _config.UserAgent, _config.APITimeout); | _api = new DiscordAPIClient(_config.LogLevel, _config.UserAgent, _config.APITimeout); | ||||
| @@ -740,7 +740,7 @@ namespace Discord | |||||
| config.EnableVoiceMultiserver = false; | config.EnableVoiceMultiserver = false; | ||||
| config.VoiceOnly = true; | config.VoiceOnly = true; | ||||
| config.VoiceClientId = unchecked(++_nextVoiceClientId); | 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}"); | client.LogMessage += (s, e) => RaiseOnLog(e.Severity, e.Source, $"(#{client.Config.VoiceClientId}) {e.Message}"); | ||||
| await client.Connect(_gateway, _token).ConfigureAwait(false); | await client.Connect(_gateway, _token).ConfigureAwait(false); | ||||
| @@ -27,6 +27,9 @@ namespace Discord | |||||
| public bool AckMessages { get { return _ackMessages; } set { SetValue(ref _ackMessages, value); } } | public bool AckMessages { get { return _ackMessages; } set { SetValue(ref _ackMessages, value); } } | ||||
| private bool _ackMessages = false; | private bool _ackMessages = false; | ||||
| //Internal | |||||
| internal override bool EnableVoice => base.EnableVoice && !EnableVoiceMultiserver; | |||||
| public new DiscordClientConfig Clone() | public new DiscordClientConfig Clone() | ||||
| { | { | ||||
| var config = this.MemberwiseClone() as DiscordClientConfig; | var config = this.MemberwiseClone() as DiscordClientConfig; | ||||
| @@ -51,14 +51,11 @@ namespace Discord | |||||
| /// <summary> Initializes a new instance of the DiscordClient class. </summary> | /// <summary> Initializes a new instance of the DiscordClient class. </summary> | ||||
| public DiscordSimpleClient(DiscordSimpleClientConfig config = null) | 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 = config ?? new DiscordSimpleClientConfig(); | ||||
| _config.Lock(); | _config.Lock(); | ||||
| _enableVoice = enableVoice; | |||||
| _voiceServerId = voiceServerId; | |||||
| _enableVoice = _config.EnableVoice; | |||||
| _state = (int)DiscordClientState.Disconnected; | _state = (int)DiscordClientState.Disconnected; | ||||
| _cancelToken = new CancellationToken(true); | _cancelToken = new CancellationToken(true); | ||||
| @@ -69,6 +66,11 @@ namespace Discord | |||||
| if (_enableVoice) | if (_enableVoice) | ||||
| _voiceSocket = CreateVoiceSocket(); | _voiceSocket = CreateVoiceSocket(); | ||||
| } | } | ||||
| internal DiscordSimpleClient(DiscordSimpleClientConfig config = null, string voiceServerId = null) | |||||
| : this(config) | |||||
| { | |||||
| _voiceServerId = voiceServerId; | |||||
| } | |||||
| internal virtual DataWebSocket CreateDataSocket() | internal virtual DataWebSocket CreateDataSocket() | ||||
| { | { | ||||
| @@ -56,6 +56,7 @@ namespace Discord | |||||
| private bool _voiceOnly; | private bool _voiceOnly; | ||||
| internal uint VoiceClientId { get { return _voiceClientId; } set { SetValue(ref _voiceClientId, value); } } | internal uint VoiceClientId { get { return _voiceClientId; } set { SetValue(ref _voiceClientId, value); } } | ||||
| private uint _voiceClientId; | private uint _voiceClientId; | ||||
| internal virtual bool EnableVoice => _voiceMode != DiscordVoiceMode.Disabled; | |||||
| internal string UserAgent | internal string UserAgent | ||||
| { | { | ||||