Discord. js Проблемы с командой по умолчанию в коммутаторе - PullRequest
0 голосов
/ 31 марта 2020

Итак, я пытаюсь создать бот-дискорд, и я пытаюсь настроить способ заставить бота просить использовать команду help, когда ввод не определен, но когда я устанавливаю значение по умолчанию в оператор switch, он просто повторяется снова и снова, @ing с введенным текстом.

switch(args[0]){
    case 'ping':
        message.channel.send('pong!');
        break;
    case 'rockLink':
        message.channel.send('') //text here, deleted to protect link
        break;
    case 'info':
        if(args[1] === 'description'){
            message.channel.send('I am eventually going to play rock music, for now I do random stuff.')
        }else if(args[1] === 'author'){
            message.channel.send('I was made by IAmAGreenFlamingo')
        }else if(args[1] === 'version'){
            message.channel.send('This bot is in version ' + version)
        }else{
            message.channel.send('Invalid Argument, please use !help info to see all valid arguments!')
        }
        break;
    case 'help':
        if(args[1] === 'info'){
            message.reply('Arguements for !info: description, author.')
        }else{
            message.reply('The commands so far are: !ping, !rockLink, and !info (use !help info for arguments)!')
        }
        break;
    default:
        message.reply('Invalid Argument, please use !help to see all commands!')
        break;
}

1 Ответ

0 голосов
/ 31 марта 2020

Хорошей практикой является игнорирование ботов и DM для команд. Добавьте что-то вроде этого в верхней части вашего оператора .on('message'):

if(message.author.bot || !message.guild) return //ignores bot messages and pms

Это также должно помешать ему ответить самому себе.

Другой вариант - заменить message.reply s на message.send s, чтобы он не помечал себя или кого-либо еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...