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

如何仅让有权限执行的用户可见专属Slash Commands?

如何让仅有权限的用户看到管理类Slash命令

当然可以实现,核心是在注册Slash命令时就配置权限要求,而非仅在执行阶段做校验。这样无对应权限的用户在命令列表里根本看不到这些命令,具体操作分两种场景:

1. 全局通用命令

以Discord机器人为例,注册命令时通过default_member_permissions参数指定所需权限。比如注册/ban命令时,要求用户拥有封禁成员的权限:

# discord.py 示例代码
@bot.tree.command(name="ban")
@app_commands.default_permissions(ban_members=True)
async def ban(interaction: discord.Interaction, member: discord.Member, reason: str = None):
    await member.ban(reason=reason)
    await interaction.response.send_message(f"已封禁 {member.mention}", ephemeral=True)

完成配置后,只有具备封禁权限的用户才能在命令列表中看到/ban。

2. 服务器专属命令

如果是针对单个服务器注册的命令,除了上述默认权限设置,还可以通过Discord服务器的内置配置做精细化调整:

  • 进入服务器设置 → 集成 → 选择你的机器人 → 找到目标命令
  • 点击命令旁的「权限」按钮,添加或移除允许查看/执行该命令的角色、用户

注意事项

你之前提到的执行阶段权限校验(比如在命令逻辑里判断用户权限),只能阻止无权限用户执行命令,但无法隐藏命令。只有在命令注册阶段配置权限要求,才能真正实现“无权限用户看不到命令”的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 06:29:59