如何为discord.py中的命令分配子帮助?
class xkcd(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.command()
async def hi(self, ctx):
await ctx.send('hey')
当我输入
有几个选项取决于您想要显示的内容和您想要显示的位置,但我会给出重要的选项。如您所料,brief
和description
允许您指定命令的简要描述和完整描述。它们是@client.command()
的参数,放在@client.command(HERE)
上。在您的情况下,这将是@commands.command(HERE)
。
另外:正如Taku提到的,
help
参数也会允许你做你想做的事。@commands.command(help="")
让你为帮助消息定义长文本,这样就可以了brief
和description
同时存在。如果你不需要,可以使用这个区分两种描述
当运行!help
命令时,brief
将给您一个简短的描述,没有给出任何参数。下面显示的bot的输出:
No Category:
help Shows this message
hi This is where the BRIEF would be found.
Type !help command for more info on a command.
You can also type !help category for more info on a category.
当命令作为参数传递给默认的帮助命令时,description
将设置消息,在您的情况下:!help hi
。bot的输出如下所示:
This is where the DESCRIPTION is found.
!hi
所以,总结一下,你的新代码看起来像这样:
class xkcd(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.command(brief="This is where the BRIEF would be found.", description="This is where the DESCRIPTION is found.")
async def hi(self, ctx):
await ctx.send('hey')
只需将字符串更改为您想要的每个命令。
我还建议阅读关于这个问题的文档,在这里找到。这将遍历command()函数的所有参数,并且知道您拥有的所有选项总是好的。
edit:看到评论澄清了你所说的sub-help是什么意思
尝试创建另一个名为help_hi
的命令然后在别名中将其命名为help hi
所以它调用它时没有_
例子:
@commands.command()
async def hi(self, ctx):
await ctx.send('hey')
@commands.command(aliases = ["help hi"])
async def help_hi(ctx):
await ctx.send("Using `!hi` will make the bot respond with `hey`")
或者您可以像这样暗示帮助部分:
@commands.command(help = "Want <bot_name> to say hi? Use `!hi`")
async def hi(self, ctx):
await ctx.send('hey')
所以现在当你运行命令!help
默认帮助嵌入不和谐申请你会显示它!
如果这不能回答你的问题,请告诉我!
试试这个:
class xkcd(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.command()
async def hi(self, ctx):
"""
This is the description for my very cool command.
Have a very good day!
"""
await ctx.send('hey')
文档字符串用于向函数中添加文档,它们在discord.py中用于!help <command>
。
docstring的第一行将用作!help
中的第一行,因此在本例中它将被列为:
hi This is the description for my very cool command.
!help hi
将显示:
!hi
This is the description for my very cool command.
Have a very good day!