Проверьте, выполнена ли команда - PullRequest
0 голосов
/ 06 октября 2018

У меня проблема с моей системой ограничения команд.
Сообщение «у вас нет прав» будет запускаться только один раз (если у вас нет роли).Я знаю, что если вы не установите переменную (в данном случае checkrole), код будет выполнен один раз, однако я не знаю, как проверить, когда выполняется команда.

Я мог бы сделать что-то вроде этого:

if  (command === ' ') {
    checkrole = false
}

Код интереса:

if (!message.member.roles.some(r => ["someone"].includes(r.name.toLowerCase())) && checkrole === false) {
    checkrole = true;
    return message.channel.send('Sorry, but you do not have the **permissions** to do that.');
  }

(определена переменная checkrole - она ​​начинается как false (var checkrole = false;))

С уважением, Рубен

1 Ответ

0 голосов
/ 06 октября 2018

Обычно, если вы хотите использовать команды, вам нужен префикс.Выбрав это, вы знаете, что содержание сообщения (Message.content) будет начинаться с prefix + command.Таким образом, вы могли бы написать это так:

// Assuming that:
// var prefix = '-'; for example
if (message.content.startsWith(prefix + "mycommand")) {
  checkrole = false;
}

Хотя это работает, есть более эффективные способы использования команд, особенно если вам нужно использовать аргументы и так далее ...
Чтение это руководство может помочь вам: оно охватывает основы, но также и более сложные вещи;)

...