Discord.py-更改默认帮助命令

时间:2020-06-29 18:07:56

标签: python discord.py

我正在尝试更改帮助命令以使用分页的帮助。

我了解以下代码完全删除了help命令:

bot.remove_command('help')

docs / dicord.py服务器提供以下示例,作为更改默认帮助命令的一种方式:

class MyHelpCommand(commands.MinimalHelpCommand):
    def get_command_signature(self, command):
        return '{0.clean_prefix}{1.qualified_name} {1.signature}'.format(self, command)

class MyCog(commands.Cog):
    def __init__(self, bot):
        self._original_help_command = bot.help_command
        bot.help_command = MyHelpCommand()
        bot.help_command.cog = self

    def cog_unload(self):
        self.bot.help_command = self._original_help_command

我仍然是python的新手,而且我只学习了大约3天的重写-我一直在努力寻找任何可行的示例或说明,这些都无法使我回到上面的代码。我无法弄清楚如何在自己的代码中实现它-所以我的问题是,任何人都可以对如何使用嵌齿轮实现进一步的解释吗?

2 个答案:

答案 0 :(得分:3)

您可以使用help_command=None。它删除默认的帮助命令,您可以创建您的帮助命令。示例:

bot = commands.Bot(command_prefix='!', help_command=None)

@bot.command()
async def help(context):
    await context.send("Custom help command")

如果您未设置help_command=None并尝试创建帮助命令,则会出现此错误:discord.errors.ClientException: Command help is already registered

答案 1 :(得分:1)

你真的不需要删除命令......这不好,使用(前缀)帮助命令名<-它不会出现......如果你想要它嵌入你可以做。

class NewHelpName(commands.MinimalHelpCommand):
    async def send_pages(self):
        destination = self.get_destination()
        for page in self.paginator.pages:
            emby = discord.Embed(description=page)
            await destination.send(embed=emby)
client.help_command = NewHelpName()

内置的帮助命令很有用