我一直在到处寻找解释,甚至阅读了discord.js文档,但一无所获。有人知道如何在discord.js中对特定用户id的消息做出反应吗?
您可以通过MessageManager.cache
获取任何消息,如果消息未缓存,则可以使用MessageManager.fetch()
。获取消息的限制要大得多,因为您只能获取通道中的最后100条消息。
从那里,您可以通过查看它们的author
属性来find
/filter
您想要的消息。
// <channel> is a placeholder for the channel object you'd like to search
// get every cached message by a user in one channel
<channel>.messages.cache.filter(({ author }) => author.id === 'ID Here')
<channel>.messages.fetch({ limit: 100 }).then((messages) => {
// same thing, but with uncached messages
messages.filter(({ author }) => author.id === 'ID Here');
每个GuildMember
也有一个lastMessage
属性,如果这对您有用的话。
// <guild> is a placeholder for the guild object you'd like to search
// get the user's last message
guild.member('ID Here').lastMessage;