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

Discord开发:自定义cog下指令执行help命令无显示问题咨询

Discord自定义Cog指令未在help命令中展示的常见问题排查

必查基础配置

  • 首先确认cogs/commands.py末尾存在合法的setup函数,没有这个函数扩展会加载失败,自然不会展示指令:
# 放在cogs/commands.py的最末尾
async def setup(client):
    await client.add_cog(Commands(client))

注意如果是discord.py v2.0及以上版本,setup函数必须是异步的,且调用add_cog需要加await,旧版本同步setup的写法已经废弃,加载会报错。

  • 检查你贴出的main.py加载代码的字符串引号,末尾的全角引号’属于语法错误,如果实际代码也是这个写法,扩展会直接加载失败,需要改为半角引号:
# 修正后的加载代码
client.load_extension('cogs.commands')
  • 检查Cog类是否设置了cog_hidden = True类属性,该配置会隐藏整个Cog下的所有指令:
class Commands(commands.Cog, name="通用指令"):
    # 去掉下面这行,或者设为False才会展示Cog
    # cog_hidden = True
    def __init__(self, client):
        self.client = client

指令属性排查

  • 检查你每个指令的装饰器是否设置了hidden=True,该参数会让指定指令在help中隐藏,示例合法的前缀指令写法:
# 正确可展示的指令示例
@commands.command(name="测试", brief="测试指令", description="这是一个测试用的指令")
async def test(self, ctx):
    await ctx.send("测试成功")
  • 如果你写的是斜杠应用指令,默认自带的前缀help命令不会展示这类指令,需要自行实现适配斜杠指令的自定义help命令。
  • 检查指令是否加了@commands.is_owner()、@commands.has_permissions(administrator=True)这类权限装饰器,如果你当前执行help的账号不满足权限要求,指令会默认隐藏,可以给help命令加show_hidden=True参数临时验证:
!help show_hidden=True

加载验证排查

  • 可以在main.py的扩展加载代码前后加异常捕获,确认扩展没有抛出加载异常:
try:
    await client.load_extension('cogs.commands')
    print("commands扩展加载成功")
except Exception as e:
    print(f"commands扩展加载失败: {e}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:54:03