You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Discord.js中用角色而非权限完全隐藏斜杠命令?

通过角色限制Discord.js斜杠命令的可见性

可以实现通过角色限制斜杠命令的可见性,让未授权角色完全看不到命令,但不能像直接传PermissionFlagsBits.BanMembers那样简单调用方法,需要结合默认权限设置和权限覆盖来完成:

  • 第一步:先将命令的默认成员权限设为0,这样所有用户默认都看不到该命令
command.setDefaultMemberPermissions(0);
  • 第二步:给需要访问命令的角色添加权限覆盖,通过代码批量设置的示例如下:
// 替换为你的服务器ID、命令ID和目标角色ID
const guild = await client.guilds.fetch('你的服务器ID');
const targetCommand = await guild.commands.fetch('你的命令ID');

// 给指定角色开放命令可见权限
await targetCommand.permissions.add({
  permissions: [
    {
      id: '目标角色ID',
      type: 'ROLE',
      permission: true
    }
  ]
});
  • 额外说明:
    • 如果是全局命令,需要针对每个服务器单独设置权限覆盖;如果是服务器专属命令,可以在部署阶段就配置好权限
    • Discord的权限系统是"默认拒绝,明确允许"的逻辑,默认权限设为0后,只有被添加了允许权限的角色才能看到并使用命令,完全满足你要的“不可见”需求

内容的提问来源于stack exchange,提问作者Jun sj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 17:29:54