diff --git a/src/Discord.Net/DiscordClient.cs b/src/Discord.Net/DiscordClient.cs index e93ca1f38..65f053ce4 100644 --- a/src/Discord.Net/DiscordClient.cs +++ b/src/Discord.Net/DiscordClient.cs @@ -253,7 +253,8 @@ namespace Discord _api.Token = token; string gateway = (await _api.Gateway().ConfigureAwait(false)).Url; - gateway = gateway.Replace("discord.gg", "discordapp.net"); //Temporary SSL workaround + if (_config.UseAlternateEndpoint) + gateway = gateway.Replace("discord.gg", "discordapp.net"); //Temporary SSL workaround if (_config.LogLevel >= LogMessageSeverity.Verbose) RaiseOnLog(LogMessageSeverity.Verbose, LogMessageSource.Client, $"Websocket endpoint: {gateway}"); diff --git a/src/Discord.Net/DiscordClientConfig.cs b/src/Discord.Net/DiscordClientConfig.cs index c4a67597b..91eb9ec06 100644 --- a/src/Discord.Net/DiscordClientConfig.cs +++ b/src/Discord.Net/DiscordClientConfig.cs @@ -49,6 +49,9 @@ namespace Discord /// (Experimental) Enables the voice websocket and UDP client. This option requires the libsodium .dll or .so be in the local lib/ folder. public bool EnableVoiceEncryption { get { return _enableVoiceEncryption; } set { SetValue(ref _enableVoiceEncryption, value); } } private bool _enableVoiceEncryption = true; + /// (Experimental) Enables the client to be simultaneously connected to multiple channels at once (Discord still limits you to one channel per server). + 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; @@ -60,15 +63,17 @@ namespace Discord /// (Experimental) Maintains the LastActivity property for users, showing when they last made an action (sent message, joined server, typed, etc). public bool TrackActivity { get { return _trackActivity; } set { SetValue(ref _trackActivity, value); } } private bool _trackActivity = true; + /// (Experimental) Uses a temporary workaround to the SSL issues via an alternate endpoint provided by the Discord developers. This option will be removed when the certificate chain is fixed on the main endpoints. + public bool UseAlternateEndpoint { get { return _useAlternateEndpoint; } set { SetValue(ref _useAlternateEndpoint, value); } } + private bool _useAlternateEndpoint = false; - /// (Experimental) Enables the client to be simultaneously connected to multiple channels at once (Discord still limits you to one channel per server). - public bool EnableVoiceMultiserver { get { return _enableVoiceMultiserver; } set { SetValue(ref _enableVoiceMultiserver, value); } } - private bool _enableVoiceMultiserver = false; + //Internals 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; + internal string UserAgent { get