删除每个角色

时间:2020-04-13 12:25:25

标签: node.js discord.js

我正在尝试从服务器中删除每个角色,但是我不知道如何删除。这是我尝试过的:

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

运行命令时,出现未处理的承诺拒绝错误。

1 个答案:

答案 0 :(得分:0)

公会的角色包括@everyone(这是出于权限目的的角色,但是不能删除),并且您的漫游器可能没有删除角色的正确权限。如果漫游器具有MANAGE_ROLESADMINISTRATOR角色,则只能删除角色。此外,漫游器无法删除托管角色(即漫游器的角色)或高于其最高角色的角色。

这将删除该漫游器所在的每个角色:

if (server.me.hasPermission('MANAGE_ROLES', {checkAdmin: true})) {
  server.roles.cache
    .filter(role =>
      role.name !== '@everyone' &&
      !role.managed &&
      server.me.roles.highest.comparePositionTo(role) > 0
    )
    .forEach(role => role.delete())
} else {
  // do whatever you want if the bot doesn't have the permissions
}