试图弄清楚如何使用此属性:sort_commands
好像它在那里,所以我可以将其默认值(True
)更改为False
,但我不知道该怎么做。
到目前为止,每个人都建议我使用bot.remove_command("help")
,然后从头开始实施我自己的
但是似乎缺少了一些东西。该属性存在是有原因的,不是吗?必须是使用此属性的一种更好的方法,而不是从头开始实施整个命令。
答案 0 :(得分:1)
您可以创建默认帮助命令的新实例:
from discord.ext import commands
help_command = commands.DefaultHelpCommand(sort_commands=False) # Also set other options here
# And pass in the new help command into the bot so it knows to use it
bot = commands.Bot(command_prefix="!", help_command=help_command)
参考:
Bot.help_command
commands.DefaultHelpCommand()
-查看其他可以在此处编辑的选项。答案 1 :(得分:1)
我设法通过以下方式实现了自己的目标:
我创建了自己的帮助命令,该命令从DefaultHelpCommand
扩展(继承),然后覆盖send_bot_help
协程,并更改排序以通过命令description
字段而不是命令名称进行比较字段(我更喜欢创建自己的order
字段等,但是找不到正确的方法,所以我使用了现有的字段。)
然后我像这样订购命令:
@commands.command(help="A helpful description of cmd1", name="commandName", description='1')
@commands.command(help="A helpful description of cmd2", name="commandName2", description='2')
以下是课程:
class MyHelpCommand(DefaultHelpCommand):
async def send_bot_help(self, mapping):
# ... everything up here copy-pased from original superclass
# This used to be c.name
commands = sorted(commands, key=lambda c: c.description)
# ... The rest is also copy-pasted
然后我像建议的那样使用它:
help_command = MyHelpCommand()
client = commands.Bot(command_prefix=Config.COMMAND_PREFIX, help_command=help_command)