Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript NodeJS-如何生成在命令之后运行的命令?_Javascript_Node.js_Bots_Discord_Discord.js - Fatal编程技术网

Javascript NodeJS-如何生成在命令之后运行的命令?

Javascript NodeJS-如何生成在命令之后运行的命令?,javascript,node.js,bots,discord,discord.js,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.ow

我想创建一个命令,该命令将在调用命令后运行 这是我的密码:

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
,每当有人键入
12042
时,它就会回复
X不在

使用那个密码,我根本得不到答案,但如果我成功了

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

它将毫无问题地回复,但它将始终回复,正如我们所知,您的机器人应该查找三种类型的消息:
afk on
afk off
,以及任何包括
12042
的消息。您的代码只处理
afk on
afk off
,而
12042
是“on”消息的特例。(如果您尝试在12042上发送
afk
,您应该会看到您的离开消息。)重新构造代码以检查所有三种情况。最简单(但不一定是最好)的方法是

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
}

在顶级if语句中,将变量分配给各自的值,并立即检查该值。您不需要在这里赋值,因为您知道您的表达式是true,并且没有备用执行流。还有,你为什么要用字符串而不是布尔值?@NoMoreQuestions啊,我的代码实际上是布尔值,因为我是stackoverflow的新手,在发布时有点困惑,所以我重新编写了代码。请问代码应该是什么样子?这是您的
消息
事件处理程序的全部内容吗?
afk
的范围是什么?您在第一个区块中遇到的问题具体在哪里?您的预期输出是什么?@AuxTaco这不是全部内容,我只想让bot运行
if(message.content.includes(config.ownerID)){message.reply(“X不在。请稍后再试”);}
只有当我运行
afk on
时才会运行,如果运行
afk off
if
message.content.includes,则不会运行(config.ownerID)
message.content.startsWith(config.prefix+“afk on”)
之外,每当提到ownerID时,bot都会发送afk消息,这就是为什么我要将其设置为
if(afk==true)
但它不起作用请注意该分支中的注释:如果启用了afk模式,则发送afk消息。您可以在
ownerID
分支中作为辅助检查,或将条件更改为
afk&&message.content.includes(config.ownerID)
。无论哪种方式,它都与分支上的
afk无关。我正在使用
afk&&message.content….
,现在每当我提到ownerID时,机器人都会不断回复,我不知道为什么,我已经将
afk=true;
afk=false
添加了
if(afk=true&&message.content.includes….
。最后一个代码段中的等号数完全错误。0或3,而不是1。但是你确定
afk
具有你认为的功能吗?如果它要跟踪消息之间的afk模式,则需要在该处理程序之外定义它。我不确定这一点,但这是s是我的猜测。“var-afk”不会将其值更改为
true
,也不会更改为
false
。这就是为什么即使我运行
afk-off