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

Discord机器人无法添加第4个app_commands问题求助

排查Discord新Slash命令无法显示的问题

以下是针对你的情况的排查方向和解决办法:

1. 检查代码缩进是否正确

从你提供的代码来看,第四个命令的async def joke存在缩进,需确认它和其他正常命令的缩进层级完全一致。如果这个方法没有被正确嵌套到对应的Cog类中,Discord.py就不会将其注册为可用命令。

调整后确保代码结构和正常命令一致:

@app_commands.command(name="tell_me_a_joke",description="tells you a joke ;)")
async def joke(self, ctx: discord.Interaction):
    await ctx.response.send_message("哈哈这就是笑话!")

2. 排查命令元数据的特殊字符问题

你的第四个命令描述里包含*joke*这种Markdown格式字符,虽然Discord支持部分格式,但偶尔会出现解析异常导致命令不显示。建议先将描述改为纯文本(比如"给你讲个笑话"),重新同步后测试。

3. 确认同步操作的正确性

  • 本地服务器同步:确保执行同步时指定了正确的服务器ID,且同步代码覆盖了所有命令。例如:
    await tree.sync(guild=discord.Object(id=你的服务器ID))
    
  • 全局同步:Discord的全局命令同步确实存在延迟,通常需要15-30分钟甚至更久,即使重新邀请机器人也可能需要等待一段时间才能生效。

4. 检查机器人权限

重新邀请机器人时,务必确认勾选了applications.commands权限(这是Slash命令正常显示的必要权限),缺少该权限会导致新命令无法被服务器加载。

5. 修正代码细节问题

你提供的第四个命令中,ctx:discord.Interaction没有加空格(正确写法是ctx: discord.Interaction),虽然Python语法允许,但可能导致Discord.py的命令解析逻辑异常,建议修正后重新运行同步。

6. 排查命令内容是否被屏蔽

你在命令里回复的链接可能被Discord的安全机制误判,建议先将回复内容改为纯文本(比如"这就是我的笑话😉"),重新同步后看命令是否能显示,排除内容违规导致的隐藏问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 06:03:23