【问题标题】:Message when collection ends收集结束时的消息
【发布时间】:2019-06-27 05:22:19
【问题描述】:

我正在尝试为我的机器人创建一个琐事命令,我希望它能够在它显示“超时”的集合的时间量之后发送一条消息。
这是我到目前为止所写的:

const Discord = require("discord.js")
exports.run = async(client, message, args) => {
  const collector = new Discord.MessageCollector(message.channel, m => m.author.id === message.author.id, {
    time: 10000
  });
  number = 1;
  var random = Math.floor(Math.random() * (number - 1 + 1)) + 1;
  switch (random) {
    case 1:
      {
        message.channel.send("Case 1");
        collector.on('collect', message => {
          if (message.content == "1") {
            return message.channel.send("Correct!");
          } else {
            message.channel.send("wrong!");
          }
        });
        collector.on('end', message => {
          message.channel.send("times up!")
        });
      }
  }
};

当我这样做时,它表示结束事件的发送未定义。

我也在下面尝试过,但它什么也没做:

const Discord = require("discord.js")
exports.run = async(client, message, args) => {
  const collector = new Discord.MessageCollector(message.channel, m => m.author.id === message.author.id, {
    time: 10000
  });
  number = 1;
  var random = Math.floor(Math.random() * (number - 1 + 1)) + 1;
  switch (random) {
    case 1:
      {
        message.channel.send("Case 1");

        collector.on('collect', message => {
          if (message.content == "1") {
            return message.channel.send("correct!");
          } else {
            message.channel.send("wrong!");
          }
        });
        collector.stop('end', message => {
          message.channel.send("times up!");
        });
      }
  }
};

我尝试的最后一件事是这个,但我得到了 .stop of undefined:

const Discord = require("discord.js")
exports.run = async(client, message, args) => {
  const collector = new Discord.MessageCollector(message.channel, m => m.author.id === message.author.id, {
    time: 10000
  });
  number = 1;
  var random = Math.floor(Math.random() * (number - 1 + 1)) + 1;
  switch (random) {
    case 1:
      {
        message.channel.send("Case 1");
        collector.on('collect', message => {
          if (message.content == "1") {
            return message.channel.send("correct!");
          } else {
            message.channel.send("wrong!");
          }
        }).stop(["times up"]);
      }
  }
};

另外,我怎么能在“正确!”之后停止收集?现场?

【问题讨论】:

    标签: discord.js


    【解决方案1】:

    尝试使用:

    collector.on('end', (collected, reason) => {
              message.channel.send("times up!")
            });
    

    就像在文档中一样:https://discord.js.org/#/docs/main/stable/class/MessageCollector?scrollTo=e-end

    【讨论】:

      猜你喜欢
      • 2022-01-21
      • 2021-04-20
      • 1970-01-01
      • 1970-01-01
      • 2015-01-28
      • 2020-11-30
      • 2021-03-31
      • 2020-07-04
      • 1970-01-01
      相关资源
      最近更新 更多