首页 > 解决方案 > 有没有办法从消息中获取命令的名称(Discord.py)

问题描述

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

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

我希望能够使用我的 Discord 机器人来调节命令,以便命令只能在指定频道中使用,例如“my_command”只能在 #general 中使用。

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

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

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

标签: pythonpython-3.xdiscord.py-rewrite

解决方案


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

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


推荐阅读