我试图记录使用print()命令删除的消息。凭着我的知识不足,我最终得到了如下所示的内容。
@bot.event
async def on_message_delete(message):
print(message.content + ": is deleted")
我想在“ [频道]”中打印“已删除[用户名]的消息 [消息]“
如果您添加了这些功能,将不胜感激。
答案 0 :(得分:2)
这确实是可能的。我自己尝试了一下,终于使它起作用了。这是我的代码:
@client.event
async def on_message_delete(message):
msg = str(message.author)+ 'deleted message in '+str(message.channel)+': '+str(message.content)
print(msg)
如果要执行侦听命令,则需要将已删除的消息存储在变量中。我使用字典来执行此操作,其中键是message.channel,值是msg。 希望这会有所帮助!
答案 1 :(得分:2)
我找到了一种使用 on_message_delete 事件检查谁删除了消息的方法,只需使用一个限制为一个的 audit_logs(),如下所示:
async def on_message_delete(message):
async for entry in message.guild.audit_logs(limit=1,action=discord.AuditLogAction.message_delete):
deleter = entry.user
print(f"{deleter.name} deleted message by {message.author.name}")
我遇到的唯一问题是有人删除了他们自己的消息,在这种情况下它不会显示在审核日志中,因此它被标记为其他人删除它,我正在绞尽脑汁,但没有解决方案浮现在脑海中。享受!
答案 2 :(得分:1)
根据this tread,(现在)无法找到删除邮件的用户名,您可以继续搜索,此页面开始变旧,也许已添加了此功能,但是我找不到它,对不起...
答案 3 :(得分:0)
@client.event
async def on_message_delete(message):
print(f'message: {message.content} by {message.author} was deleted in {message.channel}')
我不知道如何查看删除邮件的用户,但我不是那么重要,您需要查看邮件的内容,发送者以及发送的渠道,以便进行相应的惩罚!
享受(使用Discord.py ReWrite抬头)