我正在尝试从服务器中删除每个角色,但是我不知道如何删除。这是我尝试过的:
let server = message.guild;
server.roles.cache.forEach(role => role.delete());
运行命令时,出现未处理的承诺拒绝错误。
答案 0 :(得分:0)
公会的角色包括@everyone
(这是出于权限目的的角色,但是不能删除),并且您的漫游器可能没有删除角色的正确权限。如果漫游器具有MANAGE_ROLES
或ADMINISTRATOR
角色,则只能删除角色。此外,漫游器无法删除托管角色(即漫游器的角色)或高于其最高角色的角色。
这将删除该漫游器所在的每个角色:
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
}