Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.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 重叠命令?_Javascript_Node.js_Discord_Discord.js - Fatal编程技术网

Javascript 重叠命令?

Javascript 重叠命令?,javascript,node.js,discord,discord.js,Javascript,Node.js,Discord,Discord.js,我正在尝试用JavaScript和node.js制作一个有趣的discord聊天机器人,我想输入一个特定的命令,而不会影响我已经设置的另一个 她在我让她使用的所有服务器上都工作得非常出色,我已经对其进行了设置,这样当服务器中有人用“rei are”表示任何事情时,她都会用areResponses中的常量进行响应 //常量!!! const areResponses=[“见鬼,是的!”,“我很确定这是真的!”,“我不会把所有的回答都放在这里,因为那样的话,它会太长……”; //这里还有其他一些机器

我正在尝试用JavaScript和node.js制作一个有趣的discord聊天机器人,我想输入一个特定的命令,而不会影响我已经设置的另一个

她在我让她使用的所有服务器上都工作得非常出色,我已经对其进行了设置,这样当服务器中有人用“rei are”表示任何事情时,她都会用areResponses中的常量进行响应

//常量!!!
const areResponses=[“见鬼,是的!”,“我很确定这是真的!”,“我不会把所有的回答都放在这里,因为那样的话,它会太长……”;
//这里还有其他一些机器人的东西(控制台日志,正在播放),但直到。。。
//基本的。。。
if(message.content.toLowerCase().includes(“rei-are”)){
var response=arresponses[Math.floor(Math.random()*arresponses.length)];
message.channel.send(response.then().catch(console.error);
}
我想要的是,最好是这个命令在不触发我编码的“rei are”命令的情况下运行

if(message.content.toLowerCase().includes(“rei你快乐吗”)){
message.channel.send(“是的,绝对是”);
}

现在,每当我尝试输入上面的命令时,它都会触发“rei are”命令和“rei are you happy”命令,并显示两条消息…

否则/如果链真的能很好地实现这一点

if(message.content.toLowerCase().includes(“rei你喜欢女孩吗”)){
message.channel.send(“是的,绝对是。女孩只是……是的……”);
}
else if(message.content.toLowerCase().includes(“rei are”)){
var response=arresponses[Math.floor(Math.random()*arresponses.length)];
message.channel.send(response.then().catch(console.error);
}

你所需要做的就是把与较大的命令重叠的命令放在else-if链的最底部,然后你就很好了

prototype.includes()将匹配包含“rei are”的任何字符串。所以,任何你用它写的东西都会触发第一个找到的测试用例。您可以将该函数移到“rei are”测试上方,以便首先对其进行计算,或者简单地比较精确匹配。@NickLeBlanc仍然同时触发两个命令,它只是将“rei are You gay”响应置于“rei are”响应之前。有没有办法阻止“ReIE”测试完全触发这个命令?返回函数来停止执行流,或者将测试放在IF-({)} {({)}语句上。@ NickLeBlanc,您应该考虑将您的评论作为对帖子的回答。@ NickLeBlanc工作太好了!谢谢你的意见!!