我希望它在输入后自动删除作者的消息 (*answer84),这是我的代码:
@client.command()
async def on_message(message):
await client.process_commands(message)
if message.content.startswith('*answer84'):
await ctx.message.delete()
出于某种原因,它只是没有删除消息,(没有回溯错误消息)任何帮助将不胜感激,谢谢!
答案 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
移到事件底部,这是这样做的好习惯。