From 6506252054f5e3a72daeaeffde4daece0bda6d7f Mon Sep 17 00:00:00 2001 From: bdistin Date: Wed, 15 Aug 2018 01:50:22 -0500 Subject: [PATCH] fix/refactor: fix GuildMember#presence getter and cleanup (#2751) * Fix guild being a guild and not an AbstractHandler in PresenceUpdate * update the default guild to be a Guild, and not GuildMember * getters return null instead of undefined * fix lint --- .../websocket/packets/handlers/PresenceUpdate.js | 10 ++-------- src/structures/GuildMember.js | 2 +- src/structures/Presence.js | 8 ++++---- 3 files changed, 7 insertions(+), 13 deletions(-) diff --git a/src/client/websocket/packets/handlers/PresenceUpdate.js b/src/client/websocket/packets/handlers/PresenceUpdate.js index aa4f8768d..2892d44c1 100644 --- a/src/client/websocket/packets/handlers/PresenceUpdate.js +++ b/src/client/websocket/packets/handlers/PresenceUpdate.js @@ -35,15 +35,9 @@ class PresenceUpdateHandler extends AbstractHandler { }); client.emit(Events.GUILD_MEMBER_AVAILABLE, member); } - if (member) { - if (client.listenerCount(Events.PRESENCE_UPDATE) === 0) { - guild.presences.add(Object.assign(data, { guild: this })); - return; - } - guild.presences.add(Object.assign(data, { guild: this })); + guild.presences.add(Object.assign(data, { guild })); + if (member && client.listenerCount(Events.PRESENCE_UPDATE)) { client.emit(Events.PRESENCE_UPDATE, oldPresence, member.presence); - } else { - guild.presences.add(Object.assign(data, { guild: this })); } } } diff --git a/src/structures/GuildMember.js b/src/structures/GuildMember.js index 3f0a40cf5..fccfcdd4a 100644 --- a/src/structures/GuildMember.js +++ b/src/structures/GuildMember.js @@ -124,7 +124,7 @@ class GuildMember extends Base { user: { id: this.id, }, - guild: this, + guild: this.guild, }); } diff --git a/src/structures/Presence.js b/src/structures/Presence.js index 13d3ff972..3ade96bf7 100644 --- a/src/structures/Presence.js +++ b/src/structures/Presence.js @@ -21,18 +21,18 @@ class Presence { /** * The user of this presence - * @type {User} + * @type {?User} */ get user() { - return this.client.users.get(this.userID); + return this.client.users.get(this.userID) || null; } /** * The member of this presence - * @type {GuildMember} + * @type {?GuildMember} */ get member() { - return this.guild.members.get(this.userID); + return this.guild.members.get(this.userID) || null; } patch(data) {