【问题标题】:Discord JS Can't Clear all reactionsDiscord JS 无法清除所有反应
【发布时间】:2021-02-01 04:21:57
【问题描述】:

我正在尝试使用收集器为我的 Discord JS 机器人创建轮询功能。我遵循了关于制作收藏家的指南here。我的具体代码如下:

client.on('message', msg => {

  msg.channel.send("This message has a reactor collector").then(function(mesg) {
    const filter = (reaction, user) => {
      return true
    }
    const collector = mesg.createReactionCollector(filter, { time: 15000 });
    collector.on('collect', (reaction, user) => {

      }
    });
    collector.on('end', collected => {
      mesg.reactions.removeAll().catch(error => console.error('Failed to clear reactions: ', error));
    })
  }
}

错误是当我尝试清除 collector.on('end' 语句中的所有反应时。这是确切的错误:
TypeError: mesg.reactions.removeAll is not a function
根据this 链接,我使用完全相同的代码来删除反应,但它似乎不起作用。有谁知道如何解决这个问题?
提前感谢您的帮助:)

【问题讨论】:

  • 你的 discord.js 版本是多少?
  • 欢迎您!请在标签中添加discord.js
  • 我相信我使用的是 Discord JS 的最新版本(12.3.1)。
  • 链接似乎失效了,网站无法加载

标签: javascript discord.js


【解决方案1】:

您的代码缺少一些括号。这是工作反应收集器。你只需要用你想要的过滤器改变“真”。

msg.channel.send("This message has a reactor collector")
.then((mesg) => {
    const collector = msg.createReactionCollector(true, { time: 5000 }); // replace this

    collector.on('collect', (reaction, user) => {
        // 
    });

    collector.on('end', collected => {
        mesg.reactions.removeAll().catch(error => console.error('Failed to clear reactions: ', error));
    });
});

【讨论】:

    【解决方案2】:

    您的代码似乎有错误/无括号,并且您在未定义函数方面存在明显问题。

    首先,假括号是(在您的代码示例中):第 10 行,缺少括号')' 最后一行,应该是一个 ')' 来关闭 client.on 事件。

    此脚本中的另一个问题是未定义“收集器”(第 12 行),因为此变量是来自上述函数的局部变量。

    最后一个也是唯一一个你要求的问题是在第 12 行,要清除用户发送的消息中的反应,只需删除“mesg”中的“e”,这样你就会收到消息,女巫触发了事件运行。

    我希望这会有所帮助:)

    【讨论】:

    • 未来我建议你重写代码,而不是对所说的 sn-p 的每一行进行注释 - 你可以在 various formatting / markdown tools StackOverflow 提供的帮助下这样做。
    • 这就是我最初尝试的方法,但由于“代码不正确”或类似的原因,我无法发布遮阳篷......
    猜你喜欢
    • 1970-01-01
    • 2021-01-08
    • 1970-01-01
    • 1970-01-01
    • 2019-03-05
    • 1970-01-01
    • 2020-12-30
    • 2021-09-30
    • 1970-01-01
    相关资源
    最近更新 更多