Browse Source

Fixed GetGuildMembers for servers larger than 1000 members.

tags/1.0-rc
RogueException 9 years ago
parent
commit
4714dd78e5
1 changed files with 5 additions and 4 deletions
  1. +5
    -4
      src/Discord.Net/API/DiscordRawClient.cs

+ 5
- 4
src/Discord.Net/API/DiscordRawClient.cs View File

@@ -30,7 +30,7 @@ namespace Discord.API
public IRestClient RestClient { get; private set; }
public IRequestQueue RequestQueue { get; private set; }

internal DiscordRawClient(RestClientProvider restClientProvider)
public DiscordRawClient(RestClientProvider restClientProvider)
{
_restClient = restClientProvider(DiscordConfig.ClientAPIUrl);
_restClient.SetHeader("accept", "*/*");
@@ -474,11 +474,11 @@ namespace Discord.API
{
if (args == null) throw new ArgumentNullException(nameof(args));
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 offset = args.Offset;
int offset = args.Offset.GetValueOrDefault(0);

List<GuildMember[]> result;
if (args.Limit.IsSpecified)
@@ -498,6 +498,7 @@ namespace Discord.API
result.Add(models);

limit -= DiscordConfig.MaxUsersPerBatch;
offset += models.Length;

//Was this an incomplete (the last) batch?
if (models.Length != DiscordConfig.MaxUsersPerBatch) break;


Loading…
Cancel
Save