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

如何在Discord.py中自动生成可提及的应用命令帮助菜单?

解决Discord机器人自动提及应用命令的问题

你不需要手动复制命令ID,tree.get_commands()返回的每个应用命令对象本身就带有id属性,直接调用就能拿到对应命令的ID,完全可以自动化生成带提及的帮助菜单。

核心实现细节:

  • 从命令树获取的AppCommand对象,自带id属性,这就是Discord识别命令提及所需的ID。
  • Discord应用命令的标准提及格式是<command:{命令ID}>,发送后会自动渲染成可点击的命令提及。

示例代码(discord.py):

# 假设tree是你的CommandTree实例
async def send_help_menu(interaction):
    help_msg = "📜 机器人命令列表:\n"
    # 遍历所有顶层命令
    for cmd in tree.get_commands():
        # 构造可点击的命令提及
        cmd_mention = f"<command:{cmd.id}>"
        # 拼接命令描述
        cmd_desc = cmd.description if cmd.description else "无描述"
        help_msg += f"- {cmd_mention}: {cmd_desc}\n"
        
        # 如果是命令组,遍历子命令
        if hasattr(cmd, "commands"):
            for sub_cmd in cmd.commands:
                sub_mention = f"<command:{sub_cmd.id}>"
                help_msg += f"  └ {sub_mention}: {sub_cmd.description or '无描述'}\n"
    
    await interaction.response.send_message(help_msg)

补充说明:

如果你的机器人有多层级的子命令/子组,可以写个递归函数遍历所有命令,确保所有新增的命令都会被自动加入帮助菜单。这个方法完全不需要手动维护命令ID,只要命令树同步完成,帮助菜单就会自动更新。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 04:01:59