如何从服务器中删除所有角色而不会出现错误?

时间:2020-07-14 18:31:41

标签: javascript discord discord.js

我的问题是如何删除所有角色 代码:

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

错误:

DiscordAPIError: Invalid Role

1 个答案:

答案 0 :(得分:1)

该代码可以正常工作,但是...

  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()

Role#managed