Discord.js获取通道中所有消息的数组

时间:2020-08-09 03:49:39

标签: javascript node.js discord discord.js

我正在编码一个Discord机器人,我想在其中执行命令!quote,它将从ID为quotesID的特定通道中拉出随机消息of(可能是,也可能不是发送了!quote的另一个频道)。我一直在浏览Discord.js的文档,但是找不到通过其ID获取TextChannel然后使用TextChannels .messages函数并因此获得{{3} },然后收集邮件。

我知道我可以使用msg.guild(其中msg!quote的触发器)来获得公会或获得tex

我是JavaScript和Discord.js的新手,所以任何信息都对您有所帮助。 (我正在使用Discord.js版本12.2.0)

2 个答案:

答案 0 :(得分:1)

如果要获取具有ID的特定频道,则需要执行以下操作:

const channel = client.channels.cache.get("Your channel ID");

然后,要在此通道中收集消息(限制设置为最多100条消息,因此,除非您使用自己的消息存储系统,否则您不能在该通道中收集100条以上的消息)。

channel.messages.fetch({ limit: 100 }).then(messages => {
  console.log(`Received ${messages.size} messages`);
  //Iterate through the messages here with the variable "messages".
  messages.forEach(message => console.log(message.content))
})

答案 1 :(得分:0)

https://discord.js.org/#/docs/collection/master/class/Collection?scrollTo=array中所述,您可以使用方法<Collection>.array()获取Collection中值的数组。就像[...Collection.values()]Array.from(Collection.values())