【问题标题】:Reactions collector message does not delete reactions discord js反应收集器消息不删除反应不和谐 js
【发布时间】:2021-11-03 22:46:54
【问题描述】:

如何让点击不可重复?

如果我多次点击一个情绪,我可以启动集合的最大值,即使它在“messageReactionRemove”处被删除。

      setTimeout(() => {
        message.channel.send({ embeds: [messageRollWin] })
          .then(async function (message) {
              await message.react("????");
              const filter = (reaction, user) => {
                return reaction.emoji.name === '????';
              };
              const collector = message.createReactionCollector({ filter, max: 4, errors: ['time'] });

              client.on('messageReactionAdd', (reaction, user) => {
                console.log(reaction.count)
              });
              
                client.on('messageReactionRemove', (reaction, user) => {
                  console.log(reaction.count)
                  console.log(user.username)
                });

              collector.on('end', collected => {
                  message.channel.send({ embeds: [messageCountDislike] })
              });

          })
          .catch("err");
      }, 5000);

感谢帮助,我忘了让它们异步,并在反应添加/删除中添加等待。

await client.on('messageReactionAdd')

【问题讨论】:

  • 您好,欢迎来到stackoverflow!您目前的问题有点不清楚且难以回答,您能否考虑通过进一步解释您的目标添加您尝试过的方法和您面临的错误来改进它?将不胜感激。

标签: javascript discord.js


【解决方案1】:

首先你错误地使用了client.on

您需要将 2 个 client.on 收集器值更改为 collector.on,这就是您在 end 收集器上所做的。

您还需要将messageReactionAdd 更改为collect 并将messageReactionRemove 更改为“删除”。

正确代码:

      setTimeout(() => {
        message.channel.send({ embeds: [messageRollWin] })
          .then(async function (message) {
              await message.react("?");
              const filter = (reaction, user) => {
                return reaction.emoji.name === '?';
              };
              const collector = message.createReactionCollector({ filter, max: 4, errors: ['time'] });

              collector.on('collect', (reaction, user) => {
                console.log(reaction.count)
              });
              
                collector.on('remove', (reaction, user) => {
                  console.log(reaction.count)
                  console.log(user.username)
                });

              collector.on('end', collected => {
                  message.channel.send({ embeds: [messageCountDislike] })
              });

          })
          .catch("err");
      }, 5000);

您可以在此处找到有关收藏家的更多信息 - https://discordjs.guide/popular-topics/collectors.html#message-collectors

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-15
    • 2021-02-27
    • 2021-05-23
    • 2021-08-08
    • 2019-10-16
    • 2020-08-12
    • 2021-08-09
    • 2023-03-30
    相关资源
    最近更新 更多