Как разрешить переключение команды только пользователям с определенными разрешениями? - PullRequest
1 голос
/ 27 марта 2020

Я кодировал бота, который может форматировать текст - он мне нужен, чтобы не только случайные люди могли получить доступ к команде. Вот мой код - он не выдает ошибок

try {
    if(message.member.guild.me.hasPermission('ADMINISTRATOR')) {
      if (args[0] === 'off') {
        christian[message.guild.id] = false
      } else if (args[0] === 'on') {
        christian[message.guild.id] = true
      }
      message.channel.send(`Christian Mode ${christian[message.guild.id] ? 'Active' : 'Inactive'}`)
      return christian
    } else {
      message.channel.send('You do not have permission to use that command!')
    }
  } catch (error) {
    console.log('Permission Error')
  }

примечание: команда возвращается к индексу. js (основной), говоря: "Кристиан, вкл / выкл, эта функция работает.

1 Ответ

2 голосов
/ 27 марта 2020

message.member.guild.me.hasPermission('ADMINISTRATOR') проверяет разрешения бота бота, а не исполнителя команды. Звоните GuildMember#hasPermission() на message.member (см. Message#member).

Например ...

if (!message.member.hasPermission('ADMINISTRATOR')) {
  // return an error to the user (and actually return)
}

// continue with command code

ПРИМЕЧАНИЕ: Документация Discord. js с гиперссылкой для недавно выпущенной версии 12. Если ваш Discord. js не обновлен, переключитесь на правильную версию вверху страницы для точной информации.

...