Javascript 在bot重新启动后获取旧消息(Discord bot、NodeJS)
我正试图制造一个不和谐的机器人,我有一些问题。 我想要一种方法来获取某个频道的所有消息,但在bot重新启动后,他无法“看到”旧消息。 以下是一个例子:Javascript 在bot重新启动后获取旧消息(Discord bot、NodeJS),javascript,node.js,discord.js,Javascript,Node.js,Discord.js,我正试图制造一个不和谐的机器人,我有一些问题。 我想要一种方法来获取某个频道的所有消息,但在bot重新启动后,他无法“看到”旧消息。 以下是一个例子: const commando = require('discord.js-commando'); module.exports = class nbMess extends commando.Command{ constructor(client) { super(client, { name:
const commando = require('discord.js-commando');
module.exports = class nbMess extends commando.Command{
constructor(client) {
super(client, {
name: 'nbmsg',
group: 'admin',
memberName: 'nbmsg',
description: 'Return number of messages in a channel'
});
}
async run(msg, args){
msg.channel.send(`Number of messages : ${msg.channel.messages.size}`);
}
}
因此,我发送了3条随机消息,然后启动bot并启动命令。
对于调用命令的消息,结果是1。使用
.fetchMessages()
方法获取过去发送的消息
以下文件中的示例:
因此,您的示例如下所示:
module.exports = class nbMess extends commando.Command{
...
async run(msg, args){
msg.channel.fetchMessages()
.then(messages => {
msg.channel.send(`Number of messages : ${messages.size}`);
});
}
}
您可以传递一个可选设置,如限制要返回的最大消息数,请参见此处的设置:我对discord.js也有同样的问题,并发现discord.js-light不依赖缓存,它的事件可以在未缓存的对象上触发
这里存在一些差异,您可能需要获取一些数据,否则这些数据会自动填充到discord.js中。请发布相关的代码片段。阅读此帮助主题:。就目前情况而言,我们无法帮助您,因为我们无法洞察到底哪里出了问题。
module.exports = class nbMess extends commando.Command{
...
async run(msg, args){
msg.channel.fetchMessages()
.then(messages => {
msg.channel.send(`Number of messages : ${messages.size}`);
});
}
}