有没有办法从消息中获取命令的名称(Discord.py)

时间:2021-01-06 16:48:07

标签: python python-3.x discord.py-rewrite

通常,当您使用 discord.py 模块创建命令时,您会执行以下操作:

@commands.command(name="my_command", pass_context=True, aliases=["mc"])
def my_command(ctx):
    #Do some command action here

我希望能够使用我的 Discord bot 来管理命令,以便命令只能在指定的频道中使用,例如“my_command”只能在#general 中使用。

获取命令名称的一种简单方法是执行以下操作:

def get_command_name(message, prefix):
    command = message.split()[0].strip(prefix)

如果我可以使用类似 message.command_used 之类的东西来获取命令会更好,但我检查了文档,似乎没有这样的东西。有没有办法从 context 获取使用的命令而不是从字符串操作中获取命令?

1 个答案:

答案 0 :(得分:1)

<块引用>

但是我查看了文档,似乎没有类似的东西

commands.Context 的文档中,您可以找到 commandinvoked_with,您可以使用它们来获取命令的名称。如果您想包含可能的子命令,还有 invoked_subcommand