Discord. js как использовать упоминание бота и установленный префикс в качестве префиксов - PullRequest
0 голосов
/ 05 августа 2020

Я хочу сделать так, чтобы, если я сделаю [prefix] [command], это дало бы тот же эффект, что и [mention bot] [command], но способ, которым я создаю команды и аргументы, усложняет это:

Префикс сохраняется как var prefix = '!3';

А вот как я создаю команды:

bot.on('message', msg => {

    if (!msg.content.startsWith(prefix) || msg.author.bot)
        return;

  //the first message after '!13 '
        //!
    let args = msg.content.toLowerCase().substring(prefix.length).split(" ");
                           //^
          //any capitalisation is allowed (ping,Ping,pIng etc.)

switch(args[1]) {
      case 'ping': //if user inputs '!3 ping'
            msg.channel.send('Pong!') //send a message to the channel 'Pong!'
}//switch (command) ends here
};//event listener ends here

1 Ответ

2 голосов
/ 05 августа 2020

У вас может быть список предопределенных префиксов и l oop поверх него, чтобы определить, есть ли в сообщении префикс из этого списка.

let prefixList = ['!31 ', '!asdf ', `<@${bot.user.id}> `, `<@!${bot.user.id}> `]

function hasPrefix(str) {
    for(let pre of prefixList)
        if(str.startsWith(pre))
            return true;
    return false;
}

<@${bot.user.id}> , <@!${bot.user.id}> настроит бота упоминать как префикс.

...