如何限制Discord服务器管理员仅在指定频道使用斜杠命令?
限制管理员仅在指定频道使用斜杠命令的解决方法
Discord的管理员默认带的「管理员」权限会直接绕过你在Integration里设置的命令权限限制,得换两种方式解决:
方法一:通过服务器角色权限精细控制
- 打开服务器设置 → 角色,找到你的管理员角色
- 切换到「权限」标签,拉到「文本频道权限」区域,把「使用应用命令」设为拒绝(这会让管理员默认在所有频道都用不了应用命令)
- 打开指定的测试频道,进入频道设置 → 权限,添加管理员角色,找到「使用应用命令」设为允许(单独给测试频道开权限)
方法二:在机器人代码里硬校验频道(最稳妥)
不管用户是什么权限,直接在命令逻辑里判断当前频道是否是指定的测试频道,不是就拒绝执行。比如用discord.py的示例代码:
@tree.command(name="你的命令名称", description="命令描述") async def 自定义命令(interaction: discord.Interaction): # 替换成你的测试频道ID TEST_CHANNEL_ID = 123456789012345678 if interaction.channel.id != TEST_CHANNEL_ID: # 用ephemeral=True让只有用户自己能看到提示 await interaction.response.send_message("这个命令只能在测试频道使用!", ephemeral=True) return # 下面写你原来的命令执行逻辑 await interaction.response.send_message("命令执行完成!")
两种方法里,代码校验的方式更可靠,不会因为权限配置疏忽出问题;如果不想改代码,就用角色权限的方式调整。
内容的提问来源于stack exchange,提问作者William J. Cui
相关产品推荐
相关产品推荐

