@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user