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

Discord机器人添加Slash Commands失败求助:@bot.tree.command无效

Discord Slash Commands 不显示的排查与解决

1. 补全命令定义的完整结构

你提供的@bot.tree.command仅写了装饰器,缺少核心的命令实现函数,未完成的命令无法被正常注册。正确写法示例:

@bot.tree.command(name="test", description="testing purposes only")
async def test(interaction: discord.Interaction):
    await interaction.response.send_message("测试命令已生效!")

2. 修正同步命令的细节问题

  • 替换代码中的user id占位符为你真实的数字用户ID,否则权限判断会失效,同步逻辑无法执行。
  • 优先使用服务器定向同步,避免全局同步的延迟(全局同步最长可能需要1小时生效),修改同步代码:
    # 示例:在bsync命令中指定服务器同步
    await bot.tree.sync(guild=discord.Object(id=你的服务器数字ID))
    # tsync命令同理修改
    await tree.sync(guild=discord.Object(id=你的服务器数字ID))
    
  • 确保tree是bot.tree的引用,若未提前定义tree = bot.tree,第二个同步命令的装饰器需改为@bot.tree.command,否则该同步命令本身都无法注册。

3. 确认机器人权限与邀请链接

  • 检查机器人在目标服务器的权限:进入服务器设置→机器人,确认勾选applications.commands权限。
  • 若机器人是新邀请的,邀请链接必须包含scope=bot+applications.commands参数,否则无法在服务器创建Slash命令。

4. 清理Discord客户端缓存

Discord客户端可能缓存旧命令列表,尝试以下操作:

  • 退出并重新登录Discord
  • 输入/后点击右下角的命令列表刷新按钮
  • 切换至其他服务器再切回当前服务器

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 12:02:34