我有一个像这样的主要命令:
!command <parameter> <parameter>
我想要一个别名函数,该函数以命令本身作为第一个参数来触发此命令,例如:
!aliascommand test
将触发!command aliascommand test
。
我该如何实现?除了命令组,我在文档中找不到任何类似的问题或有用的东西,这似乎与我要实现的目标相反。
编辑: 我有25个“ aliascommands”列表,我想这样做-而不是为仅调用main函数的这些别名创建25个函数。因此,寻找一种基于字符串数组的动态方法来实现此目的
答案 0 :(得分:1)
您可以在 on_message
中这样做:
cmds=message.content[1:].split()
if all(cmd in aliascommands for cmd in cmds):
msg=message
msg.content='!command '+msg.content[1:]
await bot.invoke(await bot.get_context(msg))
这假定 message
是传递给 discord.Message
的 on_message
,aliascommands
是别名列表,bot
是您的 { {1}}。这段代码做了很多假设,可以替换:
discord.ext.commands.Bot