From c7f5b44e03da0ef9ae1909c03d2a7d1dc576f8ad Mon Sep 17 00:00:00 2001 From: Pg Biel Date: Thu, 26 Jan 2017 19:24:08 -0200 Subject: [PATCH] Add User.lastMessage, GuildMember.lastMessage and TextBasedChannel.lastMessage (#1135) * Add User.lastMessage * User.lastMessage and GuildMember.lastMessage * User, GuildMember and TextBasedChannel lastMessage * Update MessageCreate.js --- src/client/actions/MessageCreate.js | 25 ++++++++++++++++---- src/structures/GuildMember.js | 6 +++++ src/structures/User.js | 6 +++++ src/structures/interface/TextBasedChannel.js | 6 +++++ 4 files changed, 38 insertions(+), 5 deletions(-) diff --git a/src/client/actions/MessageCreate.js b/src/client/actions/MessageCreate.js index 00fc1e93d..542d5459d 100644 --- a/src/client/actions/MessageCreate.js +++ b/src/client/actions/MessageCreate.js @@ -14,17 +14,32 @@ class MessageCreateAction extends Action { for (let i = 0; i < data.length; i++) { messages[i] = channel._cacheMessage(new Message(channel, data[i], client)); } - channel.lastMessageID = messages[messages.length - 1].id; - if (user) user.lastMessageID = messages[messages.length - 1].id; - if (member) member.lastMessageID = messages[messages.length - 1].id; + const lastMessage = messages[messages.length - 1]; + channel.lastMessageID = lastMessage.id; + channel.lastMessage = lastMessage; + if (user) { + user.lastMessageID = lastMessage.id; + user.lastMessage = lastMessage; + } + if (member) { + member.lastMessageID = lastMessage.id; + member.lastMessage = lastMessage; + } return { messages, }; } else { const message = channel._cacheMessage(new Message(channel, data, client)); channel.lastMessageID = data.id; - if (user) user.lastMessageID = data.id; - if (member) member.lastMessageID = data.id; + channel.lastMessage = message; + if (user) { + user.lastMessageID = data.id; + user.lastMessage = message; + } + if (member) { + member.lastMessageID = data.id; + member.lastMessage = message; + } return { message, }; diff --git a/src/structures/GuildMember.js b/src/structures/GuildMember.js index c3cb86cdb..af3c5be30 100644 --- a/src/structures/GuildMember.js +++ b/src/structures/GuildMember.js @@ -39,6 +39,12 @@ class GuildMember { * @type {?Snowflake} */ this.lastMessageID = null; + + /** + * The Message object of the last message sent by the member in their guild, if one was sent. + * @type {?Message} + */ + this.lastMessage = null; } setup(data) { diff --git a/src/structures/User.js b/src/structures/User.js index 6beb3f352..94dbd4883 100644 --- a/src/structures/User.js +++ b/src/structures/User.js @@ -55,6 +55,12 @@ class User { * @type {?Snowflake} */ this.lastMessageID = null; + + /** + * The Message object of the last message sent by the user, if one was sent. + * @type {?Message} + */ + this.lastMessage = null; } patch(data) { diff --git a/src/structures/interface/TextBasedChannel.js b/src/structures/interface/TextBasedChannel.js index 6eabec25d..662ee1351 100644 --- a/src/structures/interface/TextBasedChannel.js +++ b/src/structures/interface/TextBasedChannel.js @@ -20,6 +20,12 @@ class TextBasedChannel { * @type {?Snowflake} */ this.lastMessageID = null; + + /** + * The Message object of the last message in the channel, if one was sent. + * @type {?Message} + */ + this.lastMessage = null; } /**