Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/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 Can';无法使用多个前缀来处理discord.js。我如何重写它,使它能够识别这两个前缀?_Javascript_Discord.js_Bots_Prefix_Prefixes - Fatal编程技术网

Javascript Can';无法使用多个前缀来处理discord.js。我如何重写它,使它能够识别这两个前缀?

Javascript Can';无法使用多个前缀来处理discord.js。我如何重写它,使它能够识别这两个前缀?,javascript,discord.js,bots,prefix,prefixes,Javascript,Discord.js,Bots,Prefix,Prefixes,这个标题不言自明。尝试了以下代码的不同迭代。此版本可识别firstPrefix,但不能识别secondPrefix。我只是希望我的djs机器人能够识别这两个前缀,并相应地运行Args拆分 const firstPrefix = '!test '; const secondPrefix = '!testtwo '; //Prefix bot.on('message', message => { message.content = message.content.toLowerCas

这个标题不言自明。尝试了以下代码的不同迭代。此版本可识别firstPrefix,但不能识别secondPrefix。我只是希望我的djs机器人能够识别这两个前缀,并相应地运行Args拆分

const firstPrefix = '!test ';
const secondPrefix = '!testtwo ';

//Prefix
bot.on('message', message => {
    message.content = message.content.toLowerCase();
    if (message.author.bot || !message.content.startsWith(firstPrefix || secondPrefix))  {
        return;
    }

//Args split
    if (message.content.startsWith(firstPrefix)) {
        console.log("A")
        var args = message.content.slice(firstPrefix.length).split(/ +/);
    }
    else if (message.content.startsWith(secondPrefix)) {
        console.log("B")
        var args = message.content.slice(secondPrefix.length).split(/ +/);
    } 
我试过做:

if (message.author.bot || !message.content.startsWith(firstPrefix) || !message.content.startsWith(secondPrefix))
但那根本不起作用。这里很难办,任何帮助都会很好。谢谢。

您当前的代码(第二个代码块)将不起作用,因为如果它以一个前缀开头,它就不会以另一个前缀开头,从而导致它产生一个true if语句,并且不会执行您的命令

在第一个代码块中,由于
firstPrefix
secondPrefix
都是用值定义的,
firstPrefix | | secondPrefix
将计算为
firstPrefix

由于您希望同时包含
firstPrefix
secondPrefix
,因此应执行以下操作:

if(
message.author.bot | |/*如果是bot*/
(!message.content.startsWith(firstPrefix)&&/*不以first开头*/
!message.content.startsWith(secondPrefix))/*且不以second开头*/{
返回;
}

您可以将前缀存储在一个数组中,然后使用

const prefixes = ['!test ', '!testtwo '];

bot.on('message', message => {
   ...
   if (prefixes.some(prefix => message.content.startsWith(prefix)) {
      ...
   }
});