Javascript Can';无法使用多个前缀来处理discord.js。我如何重写它,使它能够识别这两个前缀?
这个标题不言自明。尝试了以下代码的不同迭代。此版本可识别firstPrefix,但不能识别secondPrefix。我只是希望我的djs机器人能够识别这两个前缀,并相应地运行Args拆分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
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)) {
...
}
});