如何缓存所有Discord.JS消息/如何获得消息位置

时间:2019-12-14 06:21:46

标签: javascript discord.js

Discord.JS具有从文本通道中获取所有messages的属性。

在评估代码的通道中,我有100条消息。当我运行命令&来缩短控制台时,我做message.channel.messages.forEach(m => console.log(m.content)}的内容是一个字符串,我只得到3个内容。我假设这是由于缓存问题或相关问题而发生的,但是如何获取所有100/100消息而不是3/100消息?

要想进一步了解我要达到的目标,我正在尝试获取消息在频道中的位置,因为消息的属性不存在。

1 个答案:

答案 0 :(得分:0)

您需要使用Channel#fetchMessages()

let channel = message.guild.channels.get('channel_id');
channel.messages.size; // 3
channel.fetchMessages({ limit: 90 }).then((fetchedChannel) => {
    console.log(fetchedChannel.messages.size); // 90
});

这里您具有该功能的完整文档:https://discord.js.org/#/docs/main/stable/class/TextChannel?scrollTo=fetchMessages