【问题标题】:DiscordJS V12 - reactionCollector 'remove' never emitsDiscordJS V12 - reactCollector 'remove' 从不发射
【发布时间】:2021-10-01 22:51:48
【问题描述】:

类似于这些问题:

但是其中列出的解决方案都不能解决我的问题:

//Message filter and collector
const reactionFilter = (reaction, user) => {
    return ['✅', '▶️'].includes(reaction.emoji.name);
}
//Create reaction collector
const reactionCollector = sent.createReactionCollector(reactionFilter, { dispose: true, max: 1, time: 100000 });

//Message filter and collector
const messageFilter = m => m.member.id == this.player.id && m.content;
const messageCollector = sent.channel.createMessageCollector(messageFilter, { dispose: true, time: 100000 });

//Await message collector collect
messageCollector.on('collect', m => {
    //Emits fine
});

//Await reaction
reactionCollector.on('collect', (reaction, user) => {
    //Emits fine
});
//Await remove
reactionCollector.on('remove', (reaction, user) => {
    //Never emits
});
//Await end
reactionCollector.on('end', r => {
   //Emits fine
});

无论我做什么,remove 事件都不会发出。 我正在使用 Discord.js V12.5.3

我已经 dispose: true 还是不行

【问题讨论】:

  • 你怎么知道它不发光?您是否尝试在活动中添加console.log('remove event fired') 可能只是为了确定
  • 我做了-_- 这很明显。没用

标签: discord.js event-listener


【解决方案1】:

收集器在第一个反应结束

收集器在第一个反应时结束,因为您将max 设置为1。要触发 remove 事件,最大值必须为 2 或以上。

sent.createReactionCollector(reactionFilter, { dispose: true, max: 2, time: 100000 })

这可以发出 remove 事件,因为最大值大于 1。

【讨论】:

  • 试过这个。它没有用。我还删除了 max 变量,但它仍然不起作用。测试以确保使用 console.log('removemitted');
猜你喜欢
  • 2021-03-03
  • 2021-07-07
  • 2021-02-23
  • 2021-01-22
  • 2020-12-09
  • 2020-08-16
  • 2021-02-28
  • 2021-12-29
  • 2021-02-10
相关资源
最近更新 更多