@@ -30,7 +30,7 @@ namespace Discord.API
public IRestClient RestClient { get; private set; }
public IRestClient RestClient { get; private set; }
public IRequestQueue RequestQueue { get; private set; }
public IRequestQueue RequestQueue { get; private set; }
internal DiscordRawClient(RestClientProvider restClientProvider)
public DiscordRawClient(RestClientProvider restClientProvider)
{
{
_restClient = restClientProvider(DiscordConfig.ClientAPIUrl);
_restClient = restClientProvider(DiscordConfig.ClientAPIUrl);
_restClient.SetHeader("accept", "*/*");
_restClient.SetHeader("accept", "*/*");
@@ -474,11 +474,11 @@ namespace Discord.API
{
{
if (args == null) throw new ArgumentNullException(nameof(args));
if (args == null) throw new ArgumentNullException(nameof(args));
if (guildId == 0) throw new ArgumentOutOfRangeException(nameof(guildId));
if (guildId == 0) throw new ArgumentOutOfRangeException(nameof(guildId));
if (args.Limit <= 0) throw new ArgumentOutOfRangeException(nameof(args.Limit));
if (args.Offset < 0) throw new ArgumentOutOfRangeException(nameof(args.Offset));
if (args.Limit.IsSpecified && args.Limit <= 0) throw new ArgumentOutOfRangeException(nameof(args.Limit));
if (args.Offset.IsSpecified && args.Offset < 0) throw new ArgumentOutOfRangeException(nameof(args.Offset));
int limit = args.Limit.GetValueOrDefault(int.MaxValue);
int limit = args.Limit.GetValueOrDefault(int.MaxValue);
int offset = args.Offset;
int offset = args.Offset.GetValueOrDefault(0) ;
List<GuildMember[]> result;
List<GuildMember[]> result;
if (args.Limit.IsSpecified)
if (args.Limit.IsSpecified)
@@ -498,6 +498,7 @@ namespace Discord.API
result.Add(models);
result.Add(models);
limit -= DiscordConfig.MaxUsersPerBatch;
limit -= DiscordConfig.MaxUsersPerBatch;
offset += models.Length;
//Was this an incomplete (the last) batch?
//Was this an incomplete (the last) batch?
if (models.Length != DiscordConfig.MaxUsersPerBatch) break;
if (models.Length != DiscordConfig.MaxUsersPerBatch) break;