获取命令信息

时间:2020-07-23 11:49:37

标签: discord.py

有什么办法,我可以得到以下事件发生时正在使用的命令:

@bot.event
async def on_command(command):
    print(command)

出于统计目的,我需要它,我已经搜索了库,但是失败了。

2 个答案:

答案 0 :(得分:2)

是的on_command(context)使用context参数。上下文具有.command属性,为您提供命令名称。

在代码中看起来像这样:

@bot.event
async def on_command(context):
    print(context.command)

您可以在此处详细了解上下文参数包含的所有内容:https://discordpy.readthedocs.io/en/latest/ext/commands/api.html?#discord.ext.commands.Context

答案 1 :(得分:1)

如文档所述,on_command事件具有一个ctx参数。每个Context对象都有一个command属性,它是一个commands.Command对象:

@bot.event
async def on_command(ctx):
    print(ctx.command)

但是,如果您只想统计成功调用的命令,则可以使用on_command_completion事件:

@bot.event
async def on_command_completion(ctx):
    print(ctx.command)

结合on_command_error,您将能够知道用户难以调用的命令:

@bot.event
async def on_command_error(ctx, error):
    print(ctx.command.name)
    print(error)

这是我最近写的关于error management的一个小答案。它将允许您创建一个日志系统。