删除后的Discord.py日志消息

时间:2020-05-03 04:22:31

标签: discord.py

我试图记录使用print()命令删除的消息。凭着我的知识不足,我最终得到了如下所示的内容。

@bot.event
async def on_message_delete(message):
print(message.content + ": is deleted")

我想在“ [频道]”中打印“已删除[用户名]的消息 [消息]“

如果您添加了这些功能,将不胜感激。

4 个答案:

答案 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抬头)