permissions - 如何删除用户的所有角色?
问题描述
我正在尝试暂停命令,让角色工作的唯一方法是让所有其他角色从用户中删除。当我在不和谐中执行命令时,它会将其吐出到控制台中,说当机器人和用户都拥有它们时它没有权限:
> C:\Users\dubwi\Desktop\LDU_Bot>node .
Ready
(node:16868) DeprecationWarning: Collection#find: pass a function instead
{ DiscordAPIError: Missing Permissions
at item.request.gen.end (C:\Users\dubwi\Desktop\LDU_Bot\node_modules\discord.js\src\client\rest\RequestHandlers\Sequential.js:79:15)
at then (C:\Users\dubwi\Desktop\LDU_Bot\node_modules\snekfetch\src\index.js:215:21)
at process._tickCallback (internal/process/next_tick.js:68:7)
name: 'DiscordAPIError',
message: 'Missing Permissions',
path:
'/api/v7/guilds/418505146876559371/members/311651448519786496',
code: 50013,
method: 'PATCH' }
case "suspend":
if (message.member.hasPermission('MANAGE_ROLES')) {
let rMember = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[0])); //Gets the user
if (!rMember) return message.reply("That user does not exist.");
let gRole = message.guild.roles.find('name', 'SUSPENDED'); //Gets the SUSPENDED role
rMember.removeRoles(rMember.roles).then(console.log).catch(console.error); //Removes all roles
rMember.addRole(gRole.id); //Adds suspended Role
message.channel.send("User was suspended."); //Messages the channel that the user was suspended
try {
await rMember.send("You have been suspended."); //Tries to DM User
} catch (e) {
message.channel.send("We tried to DM the user to let them know, but their DM's are locked."); //Announces that their DMs are locked
}
} else {
message.channel.send("You do not have permission to use this command.");
}
break;
解决方案
正如您的错误代码所说,您缺少权限;
DiscordAPIError:缺少权限
这意味着机器人缺少执行该removeRoles()
功能所需的权限。
推荐阅读
- c# - 重定向到“区域”部分下的页面时出错
- laravel - Laravel 与外部程序的交互
- python - 构建以用户为节点,句子为目标的网络
- python - 尝试回滚anaconda环境但遇到PackagesNotFoundError: The following packages are missing from the target environment
- css - 使用css隐藏页脚中的一些元素
- stm32 - stm32外部中断引脚模式改变
- google-bigquery - Bigquery:根据不同的 date_trunc 多次运行查询并将结果合并,而不是多个 UNION ALL
- c++ - QT 的游戏手柄模块是否可以像 XInput API 那样控制振动?
- postgresql - GCLOUD Postgres,使用外部数据包装器扩展结果权限被拒绝
- java - 使用 Maven 创建战争文件