Discord.Js-获取所有用户已发送消息的列表?

时间:2020-03-09 22:41:20

标签: node.js collections discord discord.js

我正在使用Discord.js在节点中编写一个Discord机器人,想知道是否仍然可以获取所有用户消息的数组或集合。香港专业教育学院试图浏览一些成员集合,似乎找不到任何东西。会很有帮助的,谢谢!

1 个答案:

答案 0 :(得分:0)

我假设您正在使用Discord.js版本12.0.2。您可以使用一个函数来执行此操作,该函数需要参数guildID(行会的ID)和userID(您要从中获取所有消息的成员)

然后,您想在每个频道中获取尽可能多的消息。最多可以输入100个。

如果message#author.id等于userID参数,我们现在将过滤所有提取的消息。

无论您想做什么,都可以。 msgs是已过滤的消息。例如,您可以记录消息的所有内容以及它们到控制台的通道(即我所做的事情)

async function userMessages(guildID, userID){
    client.guilds.cache.get(guildID).channels.cache.forEach(ch => {
        if (ch.type === 'text'){
            ch.messages.fetch({
                limit: 100
            }).then(messages => {
                const msgs = messages.filter(m => m.author.id === userID)
                msgs.forEach(m => {
                    console.log(`${m.content} - ${m.channel.name}`)
                })
            })
        } else {
            return;
        }
    })
}