From 23191da13d63ba3a8ceaf7c77f751ed27a22e6f4 Mon Sep 17 00:00:00 2001 From: izexi <43889168+izexi@users.noreply.github.com> Date: Mon, 29 Apr 2019 17:05:52 +0100 Subject: [PATCH] feat(Partials.GuildMember): GuildMemberRemove & Guild#me (#3229) * use partials for GuildMemberRemove & Guild#me * oops * guild.members instead of Action.members Co-Authored-By: izexi <43889168+izexi@users.noreply.github.com> --- src/client/actions/Action.js | 9 +++++++++ src/client/actions/GuildMemberRemove.js | 2 +- src/structures/Guild.js | 4 +++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/client/actions/Action.js b/src/client/actions/Action.js index 0c798089b..5746d2764 100644 --- a/src/client/actions/Action.js +++ b/src/client/actions/Action.js @@ -56,6 +56,15 @@ class GenericAction { } return existing; } + + getMember(data, guild) { + const userID = data.user.id; + const existing = guild.members.get(userID); + if (!existing && this.client.options.partials.includes(PartialTypes.GUILD_MEMBER)) { + return guild.members.add({ user: { id: userID } }); + } + return existing; + } } module.exports = GenericAction; diff --git a/src/client/actions/GuildMemberRemove.js b/src/client/actions/GuildMemberRemove.js index 6a4ae397e..108a35da8 100644 --- a/src/client/actions/GuildMemberRemove.js +++ b/src/client/actions/GuildMemberRemove.js @@ -9,7 +9,7 @@ class GuildMemberRemoveAction extends Action { const guild = client.guilds.get(data.guild_id); let member = null; if (guild) { - member = guild.members.get(data.user.id); + member = this.getMember(data, guild); guild.memberCount--; if (member) { guild.voiceStates.delete(member.id); diff --git a/src/structures/Guild.js b/src/structures/Guild.js index c1d901a47..1b5987f1f 100644 --- a/src/structures/Guild.js +++ b/src/structures/Guild.js @@ -393,7 +393,9 @@ class Guild extends Base { * @readonly */ get me() { - return this.members.get(this.client.user.id) || null; + return this.members.get(this.client.user.id) || (this.client.options.partials.includes(PartialTypes.GUILD_MEMBER) ? + this.members.add({ user: { id: this.client.user.id } }, true) : + null); } /**