discord.py主命令作为命令+参数的别名

时间:2020-06-25 10:11:47

标签: discord.py

我有一个像这样的主要命令: !command <parameter> <parameter>

我想要一个别名函数,该函数以命令本身作为第一个参数来触发此命令,例如:

!aliascommand test将触发!command aliascommand test

我该如何实现?除了命令组,我在文档中找不到任何类似的问题或有用的东西,这似乎与我要实现的目标相反。

编辑: 我有25个“ aliascommands”列表,我想这样做-而不是为仅调用main函数的这些别名创建25个函数。因此,寻找一种基于字符串数组的动态方法来实现此目的

1 个答案:

答案 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.Messageon_messagealiascommands 是别名列表,bot 是您的 { {1}}。这段代码做了很多假设,可以替换:

discord.ext.commands.Bot