Я пытаюсь изменить команду справки, чтобы использовать версию справки с разбивкой на страницы.
Я понимаю, что следующая строка кода полностью удаляет команду справки:
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 дней - я изо всех сил пытаюсь найти какие-либо рабочие примеры или объяснение, которое не привело бы меня к приведенному выше коду. Я не могу понять, как реализовать это в моем собственном коде, поэтому мой вопрос: может ли кто-нибудь дать дополнительные объяснения того, как это будет реализовано с помощью винтиков?
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
.
Вам действительно не нужно удалять команду ... Это нехорошо, используя (префикс) 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
Похожие вопросы
Связанные вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.