예제 #1
0
 public static IAsyncEnumerable <IReadOnlyCollection <RestGuildUser> > GetUsersAsync(IGuild guild, BaseDiscordClient client,
                                                                                     ulong?fromUserId, int?limit, RequestOptions options)
 {
     return(new PagedAsyncEnumerable <RestGuildUser>(
                DiscordConfig.MaxMessagesPerBatch,
                async(info, ct) =>
     {
         var args = new GetGuildMembersParams
         {
             Limit = info.PageSize
         };
         if (info.Position != null)
         {
             args.AfterUserId = info.Position.Value;
         }
         var models = await client.ApiClient.GetGuildMembersAsync(guild.Id, args, options).ConfigureAwait(false);
         return models.Select(x => RestGuildUser.Create(client, guild, x)).ToImmutableArray();
     },
                nextPage: (info, lastPage) =>
     {
         if (lastPage.Count != DiscordConfig.MaxMessagesPerBatch)
         {
             return false;
         }
         info.Position = lastPage.Max(x => x.Id);
         return true;
     },
                start: fromUserId,
                count: limit
                ));
 }
예제 #2
0
파일: Guild.cs 프로젝트: faulty15/Faulty
        public virtual async Task <IReadOnlyCollection <IGuildUser> > GetUsersAsync()
        {
            var args   = new GetGuildMembersParams();
            var models = await Discord.ApiClient.GetGuildMembersAsync(Id, args).ConfigureAwait(false);

            return(models.Select(x => new GuildUser(this, new User(x.User), x)).ToImmutableArray());
        }
예제 #3
0
        public async Task <IActionResult> GetGuildMembersAsync(Snowflake guildId, [FromQuery] Dictionary <string, string> queryMap)
        {
            var args = new GetGuildMembersParams();

            args.LoadQueryMap(queryMap);
            args.Validate();

            var user = new User();

            if (args.After.IsSpecified)
            {
                user.Id = args.After.Value;
            }
            return(Ok(new[] { new GuildMember
                              {
                                  User = user
                              } }));
        }