You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

实现Discord机器人的消息删除与编辑日志功能

实现Discord机器人消息编辑日志功能

要实现消息编辑日志,你可以使用discord.py提供的on_message_edit事件监听器——这个事件会在任何消息被编辑时触发,并传递编辑前的消息对象和编辑后的消息对象。以下是和你现有删除日志风格一致的实现代码:

@commands.Cog.listener()
async def on_message_edit(self, before: discord.Message, after: discord.Message):
    # 过滤内容未发生变化的编辑(比如仅修改嵌入、附件的情况)
    if before.content == after.content:
        return
    
    embed = discord.Embed(title="Edited Message Log", color=discord.Color.gold())
    embed.add_field(name="Author", value=f"{before.author.mention}", inline=False)
    embed.add_field(name="Channel", value=f"{before.channel.mention}", inline=False)
    embed.add_field(name="Before Edit", value=before.content or "*无文本内容*", inline=False)
    embed.add_field(name="After Edit", value=after.content or "*无文本内容*", inline=False)
    
    log_channel = discord.utils.get(before.guild.channels, name="logging")
    if log_channel:
        await log_channel.send(embed=embed)

关键细节说明:

  • 无效编辑过滤:加入before.content == after.content判断,避免记录无文本变化的操作,减少冗余日志
  • 空内容兼容:用or "*无文本内容*"处理消息无文本的情况,防止Embed字段显示异常
  • 视觉区分:用金色标记编辑日志,和删除日志的默认颜色形成差异,便于管理员快速识别

你可以把这段代码和已有的on_message_delete监听器放在同一个Cog类中,就能实现完整的消息删除+编辑日志功能。

内容的提问来源于stack exchange,提问作者PanKaJxD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 11:20:58