我正在编码一个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)
答案 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())
。