Kaynağa Gözat

fixing the delete message logs

BaumSplitter41 1 ay önce
ebeveyn
işleme
acac9a954e
1 değiştirilmiş dosya ile 26 ekleme ve 17 silme
  1. 26 17
      VPD_BOT/cogs/logs.py

+ 26 - 17
VPD_BOT/cogs/logs.py

@@ -26,7 +26,7 @@ class actionlog(commands.Cog):
     
 #Deleted Message Log
     @commands.Cog.listener()
-    async def on_message_delete(self, message: discord.Message, moderator: discord.Member):
+    async def on_message_delete(self, message: discord.Message):
 
         if message.author.bot:
             return
@@ -38,23 +38,32 @@ class actionlog(commands.Cog):
         if log_channel is None:
             return
         
+        async def get_audit_log_user(guild, action, target_id):
+            try:
+                async for entry in guild.audit_logs(limit=10, action=action):
+                    if entry.target.id == target_id:
+                        return entry.user
+            except discord.Forbidden:
+                pass
+            return None
+        
+        moderator = await get_audit_log_user(message.guild, discord.AuditLogAction.message_delete, message.id)
+        
+        if message.content is None and not message.attachments:
+            content = "No content available"
+        elif message.content is None:
+            content = "Content not available, but there are attachments."
         else:
-            if message.content is None and not message.attachments:
-                content = "No content available"
-            elif message.content is None:
-                content = "Content not available, but there are attachments."
-            else:
-                content = message.content
-            moderator = self.bot.get_user(moderator)
-            embed = discord.Embed(
-                title="Message Deleted",
-                description=f"A message by {message.author.mention} was deleted in {message.channel.mention} by {moderator.mention}.",
-                color=discord.Color.red(),
-                timestamp=message.created_at
-            )
-            embed.add_field(name="Message Content", value=content[:1024], inline=False)
-            embed.set_footer(text=f"User ID: {message.author.id} | Message ID: {message.id}")
-            await log_channel.send(embed=embed)
+            content = message.content
+        embed = discord.Embed(
+            title="Message Deleted",
+            description=f"A message by {message.author.mention} was deleted in {message.channel.mention} by {moderator.mention if moderator else 'Unknown'}.",
+            color=discord.Color.red(),
+            timestamp=message.created_at
+        )
+        embed.add_field(name="Message Content", value=content[:1024], inline=False)
+        embed.set_footer(text=f"User ID: {message.author.id} | Message ID: {message.id}")
+        await log_channel.send(embed=embed)
 
 #Edited Message Log
     @commands.Cog.listener()