【问题标题】:Delete every role删除所有角色
【发布时间】:2021-10-16 08:41:01
【问题描述】:

我正在尝试从公会中删除每个角色,但我不知道该怎么做。这是我尝试过的:

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

当我运行该命令时,我收到一个未处理的承诺拒绝错误。

【问题讨论】:

  • 我们无法从您给我们的内容中理解任何内容。我们需要更详细的信息
  • 你遇到了什么错误?
  • 尝试使用role.delete().catch(console.error) 来诊断错误。

标签: node.js discord.js


【解决方案1】:

公会的角色包括@everyone(这是一个出于权限目的但不能删除的角色),您的机器人可能没有正确的权限来删除这些角色。只有具有MANAGE_ROLESADMINISTRATOR 角色的机器人才能删除角色。此外,机器人无法删除托管角色(即机器人的角色)或高于其最高角色的角色。

这将删除机器人上面的所有角色:

if (server.me.permissions.has('MANAGE_ROLES') {
  await Promise.all(
    server.roles.cache
      .filter(role =>
        role.name !== '@everyone' &&
        !role.managed &&
        server.me.roles.highest.comparePositionTo(role) > 0
      )
      .map(role => role.delete())
  )
} else {
  // do whatever you want if the bot doesn't have the permissions
}

【讨论】:

    猜你喜欢
    • 2021-11-03
    • 1970-01-01
    • 2015-01-24
    • 2019-04-07
    • 2020-12-21
    • 2017-04-25
    • 2021-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多