我正在尝试使用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进程。
答案 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();