Discord频道「Manage Permissions」权限覆写的位域标志及调用方法?
解决Discord API/discord.js中修改频道权限覆写的权限问题
- Discord客户端显示的「Manage Permissions」选项,在API层面没有对应的独立位域标志,它实际对应底层的
MANAGE_ROLES权限(discord.js中标识为ManageRoles)。 - 你之前代码报错是因为使用了不存在的
ManagePermissions标志,替换为合法的ManageRoles即可实现修改频道权限覆写的操作。
正确的discord.js代码示例:
// 若未导入PermissionsBitField需先导入 const { PermissionsBitField } = require('discord.js'); const channelOverwrite = guildChannel.permissionOverwrites.cache.get("目标ID"); // 直接指定权限标志 channelOverwrite.edit({ ManageRoles: true }); // 也可以使用位域数值的写法: // channelOverwrite.edit({ // allow: [PermissionsBitField.Flags.ManageRoles] // });
补充说明:
- 在Discord的权限体系中,
MANAGE_ROLES权限同时涵盖了服务器角色管理和频道权限覆写修改的能力,这就是客户端「Manage Permissions」选项对应的权限逻辑。 - 若要取消该权限,将代码中的
true改为false即可。
内容的提问来源于stack exchange,提问作者isaac.g
相关产品推荐
相关产品推荐

