如何使Discord Bot的命令不区分大小写

时间:2020-06-29 04:20:50

标签: javascript discord discord.js

const Discord = require("discord.js");
//ignore 1 up and 1 down
const client = new Discord.Client();
//prefix 
const prefix = `+`;
//log for me
client.once(`ready`, () => {
    console.log("IM POWERED UP")
});


//commands

client.on(`message`, message =>{
    const args = message.content.slice(prefix.lengh).split(/ +/);

    //Username..(embed)
    if (message.content === `${prefix}Username`){
        let messageArray = message.content.split(" ");
        let args = message.content.split(` `);
        let command = messageArray[1].toLowerCase();
        const embed = new Discord.MessageEmbed()
        .setTitle(`user information`)
        .addField(`Your Username is`, message.author.username)
        .addField(`Bugs`, `To report bugs please go to TxPsycho#1080 and you may earn a reward!`)
        .setThumbnail(message.author.displayAvatarURL())
        .setFooter(`Wanna get Valorant cheats? Join here`)
        .setColor(`RANDOM`)
        message.channel.send(embed);
    }
    
    //help command
    if (message.content === `${prefix}Help`){
        const embed = new Discord.MessageEmbed()
        .setTitle(`Help`)
        .addField(`A list of commands are below!`)
        .setThumbnail(message.author.displayAvatarURL())
        .setDescription(`AMOTHERFUCKINGTESTYOUMOTHERFUCKAYOUTHINKITSFUNNYCALLINGAT2AM`)
        .setColor(`RANDOM`)
        message.channel.send(embed);
    }
});


//ignore this and leave it at bottom
client.login(`Nz`)


我不确定如何使命令大写不敏感,这是它给我的错误。我一直在搜索,但未找到任何信息。下面的链接是我尝试调试代码时收到的错误的链接。

Click here to see the error picture

2 个答案:

答案 0 :(得分:1)

像流氓所说,问题是在未定义的地方调用toLowerCase:

let command = messageArray[1].toLowerCase();

由于数组的索引为0,所以实际命令应为0

您可能想shift来代替它,这样可以使参数更容易:

消息:!help 12 24 36

const args = message.content.split(" ");
const command = args.shift().toLowerCase();

console.log(args);
// => [12, 24, 36]

console.log(args[0]);
// => 12

之后,您只需比较command而不是message.content:

if(command === "!help") {


}

答案 1 :(得分:0)

您可以使用toLowerCase

清除邮件
console.log('ALPHABET'.toLowerCase()); // 'alphabet'
console.log('aLPhABeT'.toLowerCase()); // 'alphabet'
console.log('alphabet'.toLowerCase()); // 'alphabet'