diff --git a/discord/guild.py b/discord/guild.py index dcd8925ce..0a576c9c8 100644 --- a/discord/guild.py +++ b/discord/guild.py @@ -3618,7 +3618,7 @@ class Guild(Hashable): if limit is not None: limit -= len(data) - after = Object(id=int(entries[0]['id'])) + after = Object(id=int(entries[-1]['id'])) return data, entries, after, limit @@ -3635,20 +3635,19 @@ class Guild(Hashable): if isinstance(after, datetime): after = Object(id=utils.time_snowflake(after, high=True)) - if oldest_first is MISSING: - reverse = after is not MISSING - else: - reverse = oldest_first + if oldest_first: + if after is MISSING: + after = OLDEST_OBJECT predicate = None - if reverse: + if oldest_first: strategy, state = _after_strategy, after if before: predicate = lambda m: int(m['id']) < before.id else: strategy, state = _before_strategy, before - if after and after != OLDEST_OBJECT: + if after: predicate = lambda m: int(m['id']) > after.id while True: @@ -3658,8 +3657,6 @@ class Guild(Hashable): data, raw_entries, state, limit = await strategy(retrieve, state, limit) - if reverse: - raw_entries = reversed(raw_entries) if predicate: raw_entries = filter(predicate, raw_entries) diff --git a/discord/http.py b/discord/http.py index 13066d111..6eac1dd42 100644 --- a/discord/http.py +++ b/discord/http.py @@ -2003,7 +2003,7 @@ class HTTPClient: params: Dict[str, Any] = {'limit': limit} if before: params['before'] = before - if after: + if after is not None: params['after'] = after if user_id: params['user_id'] = user_id