如何使用Discord Bot正确删除Discord角色?

时间:2019-08-09 20:23:38

标签: node.js discord.js

我正在尝试使用discord.js删除一个已创建的discord bot角色。

终端中的错误显示:

  

DiscordAPIError:缺少权限

尽管我已授予我的漫游器所有权限。

代码:guild.roles.find(role => role.name === 'Test').delete();

  

终端中的错误消息:
  (节点:7428)UnhandledPromiseRejectionWarning:DiscordAPIError:缺少权限       在item.request.gen.end(... \ node_modules \ discord.js \ src \ client \ rest \ RequestHandlers \ Sequential.js:85:15)       那时(... \ node_modules \ snekfetch \ src \ index.js:215:21)       在process._tickCallback(内部/进程/next_tick.js:68:7)   (节点:7428)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。引发此错误的原因可能是抛出了一个没有catch块的异步函数,或者是拒绝了一个.catch()无法处理的承诺。 (拒绝ID:2)   (节点:7428)[DEP0018] DeprecationWarning:已弃用未处理的承诺拒绝。将来,未处理的承诺拒绝将以非零退出代码终止Node.js进程。

2 个答案:

答案 0 :(得分:1)

尽管您的漫游器可能具有删除角色的必要权限,但是由于Discord的角色层次系统的工作方式,您的漫游器在角色列表中也将需要更高(线性上方)。

如果您打算使用角色删除功能,建议您将漫游器的角色放在列表的顶部,或者至少放在需要删除的任何潜在角色的上方。

有关角色层次结构的更多信息,请参见here

答案 1 :(得分:0)

当他从服务器被踢出时,我试图像上图所示删除它。我试图通过这样的命令将其删除:

message.guild.roles.find(role => role.name === 'Test').delete();

它已被删除,因此只需确保bot拥有删除角色的正确权限,并且bot的角色应位于应该删除的角色之上。我仍然需要弄清楚如何在此命令中正确引用公会:

guild.roles.find(role => role.name === 'Test').delete();