как без ошибок удалить все роли с сервера? - PullRequest
0 голосов
/ 14 июля 2020

мой вопрос в том, как удалить код ВСЕХ ролей:

message.guild.roles.cache.forEach(role => role.delete())

ошибка:

DiscordAPIError: Invalid Role

1 Ответ

1 голос
/ 15 июля 2020

Этот код будет работать нормально, но ...

  1. Вы не можете удалить @ всех.
  2. Вы не можете удалять роли ботов.
  3. Вы не можете удалить роли выше, чем у бота.

Итак, вот рабочий код:

message.guild.roles.cache.forEach(role => {
    let botHighestRole = message.guild.member(bot.user.id).roles.highest;
    let isBotRoleHigher = role.comparePositionTo(botHighestRole)<0;
    if (role.name !== "@everyone" && isBotRoleHigher && !role.managed) {
        role.delete();
    }
})

Role # comparePositionTo ()

Номер управляемой роли

...