diff --git a/src/Discord.Net.Core/Discord.Net.Core.csproj b/src/Discord.Net.Core/Discord.Net.Core.csproj
index bce577ddd..7565fa178 100644
--- a/src/Discord.Net.Core/Discord.Net.Core.csproj
+++ b/src/Discord.Net.Core/Discord.Net.Core.csproj
@@ -4,11 +4,12 @@
Discord.Net.Core
Discord
The core components for the Discord.Net library.
- net45;netstandard1.1;netstandard1.3
+ net45;netstandard1.1;netstandard1.3
+ netstandard1.1;netstandard1.3
-
\ No newline at end of file
+
diff --git a/src/Discord.Net.Core/Entities/Guilds/IVoiceRegion.cs b/src/Discord.Net.Core/Entities/Guilds/IVoiceRegion.cs
index 98e6c92df..eef208905 100644
--- a/src/Discord.Net.Core/Entities/Guilds/IVoiceRegion.cs
+++ b/src/Discord.Net.Core/Entities/Guilds/IVoiceRegion.cs
@@ -21,13 +21,13 @@ namespace Discord
/// Returns if this voice region is the closest to your machine.
///
bool IsOptimal { get; }
- ///
- /// Gets an example hostname for this voice region.
+ ///
+ /// Returns if this is a deprecated voice region (avoid switching to these).
///
- string SampleHostname { get; }
- ///
- /// Gets an example port for this voice region.
+ bool IsDeprecated { get; }
+ ///
+ /// Returns if this is a custom voice region (used for events/etc).
///
- int SamplePort { get; }
+ bool IsCustom { get; }
}
}
diff --git a/src/Discord.Net.DebugTools/Discord.Net.DebugTools.csproj b/src/Discord.Net.DebugTools/Discord.Net.DebugTools.csproj
index 43d627c99..8c56a5fb4 100644
--- a/src/Discord.Net.DebugTools/Discord.Net.DebugTools.csproj
+++ b/src/Discord.Net.DebugTools/Discord.Net.DebugTools.csproj
@@ -4,9 +4,10 @@
Discord.Net.DebugTools
Discord
A Discord.Net extension adding some helper classes for diagnosing issues.
- net45;netstandard1.3
+ net45;netstandard1.3
+ netstandard1.3
-
\ No newline at end of file
+
diff --git a/src/Discord.Net.Rest/API/Common/VoiceRegion.cs b/src/Discord.Net.Rest/API/Common/VoiceRegion.cs
index 5f31e8f64..606af07bd 100644
--- a/src/Discord.Net.Rest/API/Common/VoiceRegion.cs
+++ b/src/Discord.Net.Rest/API/Common/VoiceRegion.cs
@@ -1,4 +1,4 @@
-#pragma warning disable CS1591
+#pragma warning disable CS1591
using Newtonsoft.Json;
namespace Discord.API
@@ -13,9 +13,9 @@ namespace Discord.API
public bool IsVip { get; set; }
[JsonProperty("optimal")]
public bool IsOptimal { get; set; }
- [JsonProperty("sample_hostname")]
- public string SampleHostname { get; set; }
- [JsonProperty("sample_port")]
- public int SamplePort { get; set; }
+ [JsonProperty("deprecated")]
+ public bool IsDeprecated { get; set; }
+ [JsonProperty("custom")]
+ public bool IsCustom { get; set; }
}
}
diff --git a/src/Discord.Net.Rest/AssemblyInfo.cs b/src/Discord.Net.Rest/AssemblyInfo.cs
index 126365e47..9c90919af 100644
--- a/src/Discord.Net.Rest/AssemblyInfo.cs
+++ b/src/Discord.Net.Rest/AssemblyInfo.cs
@@ -6,5 +6,17 @@ using System.Runtime.CompilerServices;
[assembly: InternalsVisibleTo("Discord.Net.Commands")]
[assembly: InternalsVisibleTo("Discord.Net.Tests")]
+[assembly: TypeForwardedTo(typeof(Discord.Embed))]
[assembly: TypeForwardedTo(typeof(Discord.EmbedBuilder))]
[assembly: TypeForwardedTo(typeof(Discord.EmbedBuilderExtensions))]
+[assembly: TypeForwardedTo(typeof(Discord.EmbedAuthor))]
+[assembly: TypeForwardedTo(typeof(Discord.EmbedAuthorBuilder))]
+[assembly: TypeForwardedTo(typeof(Discord.EmbedField))]
+[assembly: TypeForwardedTo(typeof(Discord.EmbedFieldBuilder))]
+[assembly: TypeForwardedTo(typeof(Discord.EmbedFooter))]
+[assembly: TypeForwardedTo(typeof(Discord.EmbedFooterBuilder))]
+[assembly: TypeForwardedTo(typeof(Discord.EmbedImage))]
+[assembly: TypeForwardedTo(typeof(Discord.EmbedProvider))]
+[assembly: TypeForwardedTo(typeof(Discord.EmbedThumbnail))]
+[assembly: TypeForwardedTo(typeof(Discord.EmbedType))]
+[assembly: TypeForwardedTo(typeof(Discord.EmbedVideo))]
diff --git a/src/Discord.Net.Rest/Discord.Net.Rest.csproj b/src/Discord.Net.Rest/Discord.Net.Rest.csproj
index 29f79e410..0eb07a4b2 100644
--- a/src/Discord.Net.Rest/Discord.Net.Rest.csproj
+++ b/src/Discord.Net.Rest/Discord.Net.Rest.csproj
@@ -4,7 +4,8 @@
Discord.Net.Rest
Discord.Rest
A core Discord.Net library containing the REST client and models.
- net45;netstandard1.1;netstandard1.3
+ net45;netstandard1.1;netstandard1.3
+ netstandard1.1;netstandard1.3
@@ -16,4 +17,4 @@
-
\ No newline at end of file
+
diff --git a/src/Discord.Net.Rest/Entities/Guilds/RestVoiceRegion.cs b/src/Discord.Net.Rest/Entities/Guilds/RestVoiceRegion.cs
index 47fd2cd19..4e0c3c1ee 100644
--- a/src/Discord.Net.Rest/Entities/Guilds/RestVoiceRegion.cs
+++ b/src/Discord.Net.Rest/Entities/Guilds/RestVoiceRegion.cs
@@ -1,4 +1,4 @@
-using Discord.Rest;
+using Discord.Rest;
using System.Diagnostics;
using Model = Discord.API.VoiceRegion;
@@ -7,11 +7,16 @@ namespace Discord
[DebuggerDisplay("{DebuggerDisplay,nq}")]
public class RestVoiceRegion : RestEntity, IVoiceRegion
{
+ ///
public string Name { get; private set; }
+ ///
public bool IsVip { get; private set; }
+ ///
public bool IsOptimal { get; private set; }
- public string SampleHostname { get; private set; }
- public int SamplePort { get; private set; }
+ ///
+ public bool IsDeprecated { get; private set; }
+ ///
+ public bool IsCustom { get; private set; }
internal RestVoiceRegion(BaseDiscordClient client, string id)
: base(client, id)
@@ -28,8 +33,8 @@ namespace Discord
Name = model.Name;
IsVip = model.IsVip;
IsOptimal = model.IsOptimal;
- SampleHostname = model.SampleHostname;
- SamplePort = model.SamplePort;
+ IsDeprecated = model.IsDeprecated;
+ IsCustom = model.IsCustom;
}
public override string ToString() => Name;
diff --git a/src/Discord.Net.Rest/Net/Queue/RequestQueueBucket.cs b/src/Discord.Net.Rest/Net/Queue/RequestQueueBucket.cs
index 2d96ca796..3346681b5 100644
--- a/src/Discord.Net.Rest/Net/Queue/RequestQueueBucket.cs
+++ b/src/Discord.Net.Rest/Net/Queue/RequestQueueBucket.cs
@@ -163,7 +163,7 @@ namespace Discord.Net.Queue
if (!isRateLimited)
throw new TimeoutException();
else
- throw new RateLimitedException(request);
+ ThrowRetryLimit(request);
}
lock (_lock)
@@ -181,13 +181,12 @@ namespace Discord.Net.Queue
await _queue.RaiseRateLimitTriggered(Id, null).ConfigureAwait(false);
}
- if ((request.Options.RetryMode & RetryMode.RetryRatelimit) == 0)
- throw new RateLimitedException(request);
+ ThrowRetryLimit(request);
if (resetAt.HasValue)
{
if (resetAt > timeoutAt)
- throw new RateLimitedException(request);
+ ThrowRetryLimit(request);
int millis = (int)Math.Ceiling((resetAt.Value - DateTimeOffset.UtcNow).TotalMilliseconds);
#if DEBUG_LIMITS
Debug.WriteLine($"[{id}] Sleeping {millis} ms (Pre-emptive)");
@@ -198,7 +197,7 @@ namespace Discord.Net.Queue
else
{
if ((timeoutAt.Value - DateTimeOffset.UtcNow).TotalMilliseconds < 500.0)
- throw new RateLimitedException(request);
+ ThrowRetryLimit(request);
#if DEBUG_LIMITS
Debug.WriteLine($"[{id}] Sleeping 500* ms (Pre-emptive)");
#endif
@@ -309,5 +308,11 @@ namespace Discord.Net.Queue
}
}
}
+
+ private void ThrowRetryLimit(RestRequest request)
+ {
+ if ((request.Options.RetryMode & RetryMode.RetryRatelimit) == 0)
+ throw new RateLimitedException(request);
+ }
}
}
diff --git a/src/Discord.Net.WebSocket/Discord.Net.WebSocket.csproj b/src/Discord.Net.WebSocket/Discord.Net.WebSocket.csproj
index e4de43e51..251cdb18b 100644
--- a/src/Discord.Net.WebSocket/Discord.Net.WebSocket.csproj
+++ b/src/Discord.Net.WebSocket/Discord.Net.WebSocket.csproj
@@ -4,7 +4,8 @@
Discord.Net.WebSocket
Discord.WebSocket
A core Discord.Net library containing the WebSocket client and models.
- net45;netstandard1.1;netstandard1.3
+ net45;netstandard1.1;netstandard1.3
+ netstandard1.1;netstandard1.3
true
@@ -14,4 +15,4 @@
-
\ No newline at end of file
+