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

Chr*_*Pot 2 python discord.py

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

我知道以下代码行完全删除了 help 命令:

bot.remove_command('help')
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

我仍然是 Python 的新手,而且我只学习了 3 天左右的重写 - 我正在努力寻找任何工作示例或不会引导我回到上述代码的解释。我无法弄清楚如何将其实现到我自己的代码中 - 所以我的问题是,有人可以进一步解释如何使用 cogs 实现它吗?

小智 10

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

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

@bot.command()
async def help(context):
    await context.send("Custom help command")
Run Code Online (Sandbox Code Playgroud)

如果您没有设置help_command=None并尝试创建您的帮助命令,您会收到此错误:discord.errors.ClientException: Command help is already registered.