From 13bfceb83cf771d1d56d28fd474d824f9a8884db Mon Sep 17 00:00:00 2001 From: Lewdcario Date: Tue, 5 Jun 2018 19:50:36 -0500 Subject: [PATCH] fix(GuildMember): mark joined as nullable and fix fetching for these cases --- src/stores/GuildMemberStore.js | 2 +- src/structures/GuildMember.js | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/stores/GuildMemberStore.js b/src/stores/GuildMemberStore.js index e430e28ab..520f9d0d3 100644 --- a/src/stores/GuildMemberStore.js +++ b/src/stores/GuildMemberStore.js @@ -178,7 +178,7 @@ class GuildMemberStore extends DataStore { _fetchSingle({ user, cache }) { const existing = this.get(user); - if (existing) return Promise.resolve(existing); + if (existing && existing.joinedTimestamp) return Promise.resolve(existing); return this.client.api.guilds(this.guild.id).members(user).get() .then(data => this.add(data, cache)); } diff --git a/src/structures/GuildMember.js b/src/structures/GuildMember.js index 5d257c076..7d30d8609 100644 --- a/src/structures/GuildMember.js +++ b/src/structures/GuildMember.js @@ -65,11 +65,11 @@ class GuildMember extends Base { if (typeof data.nick !== 'undefined') this.nickname = data.nick; /** - * The timestamp the member joined the guild at - * @type {number} + * The timestamp the member joined the guild at, if the data was received + * @type {?number} * @name GuildMember#joinedTimestamp */ - if (data.joined_at) this.joinedTimestamp = new Date(Number(data.joined_at)).getTime(); + if (data.joined_at) this.joinedTimestamp = new Date(data.joined_at).getTime(); if (data.user) this.user = this.guild.client.users.add(data.user); if (data.roles) this.roles._patch(data.roles); @@ -147,12 +147,12 @@ class GuildMember extends Base { get voiceChannelID() { return this.voiceState.channel_id; } /** - * The time this member joined the guild - * @type {Date} + * The time this member joined the guild, if the data was received + * @type {?Date} * @readonly */ get joinedAt() { - return new Date(this.joinedTimestamp); + return this.joinedTimestamp ? new Date(this.joinedTimestamp) : null; } /**