public async ValueTask <DiscordGuildMemberPacket[]> GetGuildMembersAsync(ulong guildId)
        {
            var   items  = new List <DiscordGuildMemberPacket>();
            ulong?lastId = null;

            while (true)
            {
                var url = DiscordApiRoutes.GuildMembers(guildId) + "?limit=1000";

                if (lastId.HasValue)
                {
                    url += "&after=" + lastId;
                }

                var response = await RestClient.GetAsync(url).ConfigureAwait(false);

                HandleErrors(response);
                var packet = JsonHelper.Deserialize <DiscordGuildMemberPacket[]>(response.Body);

                items.AddRange(packet);

                if (packet.Length < 1000)
                {
                    break;
                }

                lastId = packet.Last().User.Id;
            }

            return(items.ToArray());
        }