我正在try 创建一个discord机器人,它可以创建一个线程,并在运行命令后收集消息.以下是我的代码:
require('dotenv').config();
const { SlashCommandBuilder, EmbedBuilder } = require('discord.js');
module.exports = {
data: new SlashCommandBuilder()
.setName('start')
.setDescription('Start the story'),
async execute(interaction, client) {
...
const filter = () => true;
client.collectors.set(`collector${channel.id}`, channel.createMessageCollector({ filter, time: 30000, max: 1000 }));
const collector = client.collectors.get(`collector${channel.id}`);
collector.on('collect', m => {
console.log(`Collected ${m.content}`);
});
collector.on('end', collected => {
console.log(`Collected ${collected.size} items`);
});
...
},
};
我的第一个 idea 是,在命令运行后,收集器将从内存中删除,这就是为什么我为客户端提供了一个属性,一个名为Colltors的集合,但Collect事件仍然不会运行,End事件将仅在线程删除后或时间限制结束时运行,但随后它会记录"Collect 0 Items",即使发送了消息.
我try 在index.js中的函数中创建它,但也没有帮助.
更新:添加() => true
作为筛选器,不做任何更改...