Я пытаюсь изменить команду справки, чтобы использовать версию справки с разбивкой на страницы.

Я понимаю, что следующая строка кода полностью удаляет команду справки:

bot.remove_command('help')

Сервер docs / discord.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 дней - я изо всех сил пытаюсь найти какие-либо рабочие примеры или объяснение, которое не привело бы меня к приведенному выше коду. Я не могу понять, как реализовать это в моем собственном коде, поэтому мой вопрос: может ли кто-нибудь дать дополнительные объяснения того, как это будет реализовано с помощью винтиков?

3
Chris T-Pot 29 Июн 2020 в 21:07

2 ответа

Лучший ответ

Вы можете использовать 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.

5
user12991524user12991524 29 Июн 2020 в 18:51

Вам действительно не нужно удалять команду ... Это нехорошо, используя (префикс) help commandname <- Тогда она не появится ... Если вы хотите, чтобы она была встроена, вы можете сделать это.

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()```
The built in help command is of great use
0
RamJams 22 Янв 2021 в 11:20