Измените права доступа к каналу с помощью команды (Javascript Discord. js) - PullRequest
0 голосов
/ 28 апреля 2020

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

Мне нужно это делать, когда выполняется команда lock:

  • Поиск всех каналов, для которых Send Messages установлено на true на @everyone
  • Измените Send Messages на false на @everyone на этих каналах
  • Отправьте встроенное сообщение в эти каналы

И мне нужно, чтобы это делалось при выполнении команды unlock:

  • Установите разрешения обратно на то, как они были на этих каналах (Send Messages обратно на true на @everyone)

Я пробовал это на роли Admin, но она не работает и не выполняет то, что Я хочу сделать выше:

if (command === "lock") {
    let channel = message.channel;
    let roles = message.guild.roles; // collection
    const adminRole = message.guild.roles.cache.find(r => r.name === 'Admin');

    // overwrites 'SEND_MESSAGES' role, only on this specific channel
    channel.overwritePermissions(
        adminRole,
        { 'SEND_MESSAGES': false },
        // optional 'reason' for permission overwrite
        'lockdown'
    )
        // handle responses / errors
        .then(console.log)
        .catch(console.log);
}
});

1 Ответ

0 голосов
/ 28 апреля 2020

То, как вы используете overwritePermissions() неправильно, вот как это должно выглядеть:

channel.overwritePermissions([
  {
     id: adminRole.id,
     deny: ['SEND_MESSAGES'],
  },
], 'Lockdown');
...