Python 如何从自定义帮助命令隐藏齿轮/命令

Python 如何从自定义帮助命令隐藏齿轮/命令,python,discord.py,Python,Discord.py,我需要将某些COG/命令从嵌入自定义帮助命令中排除,尽管我无法找到将它们从循环中排除的方法 感谢您的帮助,谢谢 @commands.command(name=“help”) 异步def帮助(自身、上下文): """ 列出bot已加载的每个Cog中的所有命令。 """ 前缀=config.BOT\u前缀 如果不是isinstance(前缀,str): 前缀=前缀[0] embed=discord.embed(title=“Help”,description=“可用命令列表:”,color=conf

我需要将某些COG/命令从嵌入自定义帮助命令中排除,尽管我无法找到将它们从循环中排除的方法

感谢您的帮助,谢谢

@commands.command(name=“help”)
异步def帮助(自身、上下文):
"""
列出bot已加载的每个Cog中的所有命令。
"""
前缀=config.BOT\u前缀
如果不是isinstance(前缀,str):
前缀=前缀[0]
embed=discord.embed(title=“Help”,description=“可用命令列表:”,color=config.success)
对于self.bot.cogs中的i:
cog=self.bot.get_cog(i.lower())
如果齿轮!=“所有者”:
commands=cog.get_commands()
command_list=[command.name用于命令中的命令]
command_description=[command.help用于命令中的命令]
help_text='\n'。在zip(命令列表,命令描述)中为n,h连接(f'{prefix}{n}-{h}'
embed.add_字段(name=i.capitalize(),value=f'`{help_text}`',inline=False)
wait context.send(嵌入=嵌入)

如果您在命令顶部使用
@has_permissions()
@has_role()
装饰程序,则只有通过该检查,它才会显示在默认的帮助菜单中

如果您想创建自己的自定义命令,可以通过
self.get\u commands()
迭代所有bot或cog命令。然后,对于每个命令,您可以找到
command.checks
,它返回添加到您的命令中的所有检查的列表(具有\u权限、具有\u角色或自定义检查)。然后,您可以使用这些检查(它们是一个函数)来检查消息的作者是否全部通过了这些检查

此代码发送一个包含作者可以使用的所有命令的嵌入

    @commands.command()
    def help(self, ctx: Context):
        embed = Embed()

        embed.title = f"Admin commands of  {self.qualified_name}"
        for command in self.get_commands():
            name = command.name
            description = command.description
            passes_check = True
            for check in command.checks:
                if not check(ctx.author):
                    passes_check = False
                    break
            if passes_check:
                embed.add_field(name=name, value=description, inline=False)

        await ctx.send(embed=embed)
参考资料:


您想排除哪些
cogs
项目?主要是那些需要版主和/或管理员权限才能运行的项目。比如说
owner
moderation
cogs