feat v13: Support pagination for fetching thread members

#9045 djs
This commit is contained in:
Elysia
2023-02-05 15:14:42 +07:00
parent f70663aba1
commit 0f97dc03bd
3 changed files with 105 additions and 21 deletions

View File

@@ -8,7 +8,7 @@ const ThreadMemberFlags = require('../util/ThreadMemberFlags');
* @extends {Base}
*/
class ThreadMember extends Base {
constructor(thread, data) {
constructor(thread, data, extra = {}) {
super(thread.client);
/**
@@ -29,10 +29,10 @@ class ThreadMember extends Base {
*/
this.id = data.user_id;
this._patch(data);
this._patch(data, extra);
}
_patch(data) {
_patch(data, extra = {}) {
if ('join_timestamp' in data) this.joinedTimestamp = new Date(data.join_timestamp).getTime();
if ('flags' in data) {
@@ -42,6 +42,17 @@ class ThreadMember extends Base {
*/
this.flags = new ThreadMemberFlags(data.flags).freeze();
}
if ('member' in data) {
/**
* The guild member associated with this thread member.
* @type {?GuildMember}
* @private
*/
this.member = this.thread.guild.members._add(data.member, extra.cache);
} else {
this.member ??= null;
}
}
/**
@@ -50,7 +61,7 @@ class ThreadMember extends Base {
* @readonly
*/
get guildMember() {
return this.thread.guild.members.resolve(this.id);
return this.member ?? this.thread.guild.members.resolve(this.id);
}
/**