diff --git a/src/structures/Message.js b/src/structures/Message.js index d53d8bfad..044b3f5a3 100644 --- a/src/structures/Message.js +++ b/src/structures/Message.js @@ -63,13 +63,6 @@ class Message { */ this.author = this.client.dataManager.newUser(data.author, !data.webhook_id); - /** - * Represents the author of the message as a guild member - * Only available if the message comes from a guild where the author is still a member - * @type {?GuildMember} - */ - this.member = this.guild ? this.guild.member(this.author) || null : null; - /** * Whether or not this message is pinned * @type {boolean} @@ -155,6 +148,17 @@ class Message { * @private */ this._edits = []; + + if (data.member && this.guild && this.author && !this.guild.members.has(this.author.id)) { + this.guild._addMember(Object.assign(data.member, { user: this.author }), false); + } + + /** + * Represents the author of the message as a guild member + * Only available if the message comes from a guild where the author is still a member + * @type {?GuildMember} + */ + this.member = this.guild ? this.guild.member(this.author) || null : null; } /** diff --git a/src/structures/MessageMentions.js b/src/structures/MessageMentions.js index 99d45913b..7ba33820e 100644 --- a/src/structures/MessageMentions.js +++ b/src/structures/MessageMentions.js @@ -24,6 +24,9 @@ class MessageMentions { let user = message.client.users.get(mention.id); if (!user) user = message.client.dataManager.newUser(mention); this.users.set(user.id, user); + if (mention.member && message.guild && !message.guild.members.has(mention.id)) { + message.guild._addMember(Object.assign(mention.member, { user }), false); + } } } } else {