DISCORD PY 删除作者消息的命令没有执行

时间:2021-01-17 00:41:43

标签: python discord discord.py

我希望它在输入后自动删除作者的消息 (*answer84),这是我的代码:

@client.command()
async def on_message(message):
    await client.process_commands(message)
    if message.content.startswith('*answer84'):
        await ctx.message.delete()

出于某种原因,它只是没有删除消息,(没有回溯错误消息)任何帮助将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:3)

您的代码只有几个错误:

活动

您需要使用 event 装饰器而不是 command() 装饰器。这是“注册要收听的事件的装饰器。”。阅读有关事件参考 here 的更多信息。

删除消息

由于 on_message 事件只接受 message 作为参数,所以没有 ctx 这样的东西。删除 ctx,它起作用了!

代码

@client.event #changed decorator to event
async def on_message(message):
    if message.content.startswith('*answer84'):
        await message.delete() #removed ctx

    await client.process_commands(message)

编辑

client.process_commands 移到事件底部,这是这样做的好习惯。