NodeJS - 如何创建一个命令后运行的命令?

时间:2017-12-03 07:12:46

标签: javascript node.js bots discord discord.js

我想创建一个在调用命令后运行的命令 这是我的代码:

ownerID = "12042";
    if (message.content.startsWith(config.prefix+"afk on")) {
      afk = true;
      if (afk == true) {
      message.channel.send("Turned on AFK mode");
        if (message.content.includes(config.ownerID)) {
            message.reply(`X is away. Try again later.`);
          }
        }
    }
    if (message.content.startsWith(config.prefix+"afk off")) {
      afk = false;
      if (afk == false) {
      message.channel.send("Turned off AFK mode");
      }
    }

我尝试在此处制作“AFK模式”命令,如果我发送afk on,只要有人输入X is away,它就会回复12042

使用该代码,我根本得不到答案,但如果我做到了

if (message.content.includes(config.ownerID)) {
    message.reply(`X is away. Try again later.`);
    }

它会毫无问题地回复,但它会一直回复,因为我们都知道

1 个答案:

答案 0 :(得分:1)

您的机器人应该寻找三种类型的消息:<prefix>afk on<prefix>afk off以及包括12042在内的任何消息。您的代码仅处理<prefix>afk on<prefix>afk off12042作为“on”消息的特例。 (如果您尝试发送<prefix>afk on 12042,则应该会看到离开的消息。)重新构建代码以检查所有三种情况。最简单(但不一定是最好的)方式就像

if (message.content.startsWith(config.prefix+"afk on")) {
  // turn on afk mode
} else if (message.content.startsWith(config.prefix+"afk off")) {
  // turn off afk mode
} else if (message.content.includes(config.ownerID)) {
  // send the afk message if afk mode is on
}