有什么办法,我可以得到以下事件发生时正在使用的命令:
@bot.event
async def on_command(command):
print(command)
出于统计目的,我需要它,我已经搜索了库,但是失败了。
答案 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的一个小答案。它将允许您创建一个日志系统。