Discord.py在删除时记录消息



当消息被使用print((命令删除时,我正在尝试记录它们。由于我的知识贫乏,我最终得到了如下所示的东西。

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

我想像"[用户名]在[频道]中删除的消息"一样打印[消息]">

如果您能将这些功能添加到工作中,我将不胜感激。

我找到了一种方法来检查谁用on_message_delete事件删除了消息,只需使用限制为一的audit_log((,如下所示:

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}")

我遇到的唯一问题是,有人删除了自己的消息,在这种情况下,它不会出现在审计日志中,所以它被标记为其他人删除了它,我绞尽脑汁,但没有想到解决方案。享受

根据这个步骤,(现在(无法找到删除消息的用户的名称,您可以继续搜索,这个步骤开始过时,也许这个功能已经添加,但我找不到,对不起。。。

@client.event
async def on_message_delete(message):
print(f'message: {message.content} by {message.author} was deleted in {message.channel}')

我不知道如何看到删除消息的用户,但我不知道这有多重要,你需要看看消息是什么,是谁发送的,以及它是在哪个渠道发送的,这样你就可以进行相应的惩罚!

享受(这使用Discord.py ReWrite提示(

这确实是可能的。我自己试过了,终于成功了。这是我的代码:

@client.event
async def on_message_delete(message):
msg = str(message.author)+ 'deleted message in '+str(message.channel)+': '+str(message.content)
print(msg)

如果你想制作一个snipe命令,你需要将删除的消息存储在一个变量中。我用了一本字典来做这件事,其中键是message.channel,值是msg。希望这能有所帮助!

最新更新