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) {