diff --git a/jarvis/cogs/modlog.py b/jarvis/cogs/modlog.py index ca3ed66..37428f8 100644 --- a/jarvis/cogs/modlog.py +++ b/jarvis/cogs/modlog.py @@ -24,206 +24,187 @@ class ModlogCog(commands.Cog): auditlog, ) - @commands.Cog.listener() - async def on_member_ban(self, guild: discord.Guild, user: discord.User): - modlog = self.db.jarvis.settings.find_one( - {"guild": guild.id, "setting": "modlog"} - ) - if modlog: - channel = guild.get_channel(modlog["value"]) - await asyncio.sleep(0.5) # Need to wait for audit log - auditlog = await guild.audit_logs( - limit=50, - action=discord.AuditLogAction.ban, - after=datetime.utcnow() - timedelta(seconds=15), - oldest_first=False, - ) - log: discord.AuditLogEntry = self.get_latest_log(auditlog, user) - fields = [ - Field( - name="Member", - value=f"{user.mention} ({user.name}#{user.descriminator})", - ), - Field( - name="Moderator", - value=f"{user.mention} ({user.name}#{user.descriminator})", - ), - Field(name="Reason", value=log.reason, inline=False), - ] - embed = build_embed( - title="User Banned", - description=f"A user was banned from {guild.name}", - color="#bf2a3e", - fields=fields, - timestamp=log.created_at, - ) - embed.set_author( - name=f"{user.name}#{user.discriminator} | {user.id}", - icon_url=user.avatar_url, - ) - - await channel.send(embed=embed) - - @commands.Cog.listener() - async def on_member_unban( - self, guild: discord.Guild, user: discord.User - ): - modlog = self.db.jarvis.settings.find_one( - {"guild": guild.id, "setting": "modlog"} - ) - if modlog: - channel = guild.get_channel(modlog["value"]) - await asyncio.sleep(0.5) # Need to wait for audit log - auditlog = await guild.audit_logs( - limit=50, - action=discord.AuditLogAction.unban, - after=datetime.utcnow() - timedelta(seconds=15), - oldest_first=False, - ) - log: discord.AuditLogEntry = self.get_latest_log( - auditlog, user - ) - fields = [ - Field( - name="Member", - value=f"{user.mention} ({user.name}#{user.descriminator})", - ), - Field( - name="Moderator", - value=f"{user.mention} ({user.name}#{user.descriminator})", - ), - Field(name="Reason", value=log.reason, inline=False), - ] - embed = build_embed( - title="User Unbanned", - description=f"A user was unbanned from {guild.name}", - color="#bf2a3e", - fields=fields, - timestamp=log.created_at, - ) - embed.set_author( - name=f"{user.name}#{user.discriminator} | {user.id}", - icon_url=user.avatar_url, - ) - - await channel.send(embed=embed) - - @commands.Cog.listener() - async def on_member_remove(self, user: discord.User): - modlog = self.db.jarvis.settings.find_one( - {"guild": user.guild.id, "setting": "modlog"} - ) - if modlog: - channel = user.guild.get_channel(modlog["value"]) - await asyncio.sleep(0.5) # Need to wait for audit log - auditlog = await user.guild.audit_logs( - limit=50, - action=discord.AuditLogAction.kick, - after=datetime.utcnow() - timedelta(seconds=15), - oldest_first=False, - ) - log: discord.AuditLogEntry = self.get_latest_log( - auditlog, user - ) - fields = [ - Field( - name="Member", - value=f"{user.mention} ({user.name}#{user.descriminator})", - ), - Field( - name="Moderator", - value=f"{user.mention} ({user.name}#{user.descriminator})", - ), - Field(name="Reason", value=log.reason, inline=False), - ] - embed = build_embed( - title="User Kicked", - description=f"A user was kicked from {guild.name}", - color="#bf2a3e", - fields=fields, - timestamp=log.created_at, - ) - embed.set_author( - name=f"{user.name}#{user.discriminator} | {user.id}", - icon_url=user.avatar_url, - ) - - await channel.send(embed=embed) - - @commands.Cog.listener() - async def on_member_update( - self, before: discord.User, after: discord.User - ): - modlog = self.db.jarvis.settings.find_one( - {"guild": user.guild.id, "setting": "modlog"} - ) - if modlog: - channel = user.guild.get_channel(modlog["value"]) - await asyncio.sleep(0.5) # Need to wait for audit log - embed = None - mute = self.db.jarvis.settings.find_one( - {"guild": before.guild.id, "setting": "mute"} - ) - verified = self.db.jarvis.settings.find_one( - {"guild": before.guild.id, "setting": "verified"} - ) - if ( - mute - and before.guild.get_role(mute["value"]) - in after.roles - ): - # TODO: User was muted - pass - elif ( - mute - and before.guild.get_role(mute["value"]) - in before.roles - ): - # TODO: User was unmuted - pass - elif ( - verified - and before.guild.get_role(verified["value"]) - in before.roles - ): - # TODO: User was verified - pass - - auditlog = await user.guild.audit_logs( - limit=50, - action=discord.AuditLogAction.kick, - after=datetime.utcnow() - timedelta(seconds=15), - oldest_first=False, - ) - log: discord.AuditLogEntry = self.get_latest_log( - auditlog, user - ) - fields = [ - Field( - name="Member", - value=f"{user.mention} ({user.name}#{user.descriminator})", - ), - Field( - name="Moderator", - value=f"{user.mention} ({user.name}#{user.descriminator})", - ), - Field( - name="Reason", value=log.reason, inline=False - ), - ] - embed = build_embed( - title="User Kicked", - description=f"A user was kicked from {guild.name}", - color="#bf2a3e", - fields=fields, - timestamp=log.created_at, - ) - embed.set_author( - name=f"{user.name}#{user.discriminator} | {user.id}", - icon_url=user.avatar_url, - ) - - await channel.send(embed=embed) + # @commands.Cog.listener() + # async def on_member_ban(self, guild: discord.Guild, user: discord.User): + # modlog = self.db.jarvis.settings.find_one( + # {"guild": guild.id, "setting": "modlog"} + # ) + # if modlog: + # channel = guild.get_channel(modlog["value"]) + # await asyncio.sleep(0.5) # Need to wait for audit log + # auditlog = await guild.audit_logs( + # limit=50, + # action=discord.AuditLogAction.ban, + # after=datetime.utcnow() - timedelta(seconds=15), + # oldest_first=False, + # ) + # log: discord.AuditLogEntry = self.get_latest_log(auditlog, user) + # fields = [ + # Field( + # name="Member", + # value=f"{user.mention} ({user.name}#{user.descriminator})", + # ), + # Field( + # name="Moderator", + # value=f"{user.mention} ({user.name}#{user.descriminator})", + # ), + # Field(name="Reason", value=log.reason, inline=False), + # ] + # embed = build_embed( + # title="User Banned", + # description=f"A user was banned from {guild.name}", + # color="#bf2a3e", + # fields=fields, + # timestamp=log.created_at, + # ) + # embed.set_author( + # name=f"{user.name}#{user.discriminator} | {user.id}", + # icon_url=user.avatar_url, + # ) + # + # await channel.send(embed=embed) + # + # @commands.Cog.listener() + # async def on_member_unban(self, guild: discord.Guild, user: discord.User): + # modlog = self.db.jarvis.settings.find_one( + # {"guild": guild.id, "setting": "modlog"} + # ) + # if modlog: + # channel = guild.get_channel(modlog["value"]) + # await asyncio.sleep(0.5) # Need to wait for audit log + # auditlog = await guild.audit_logs( + # limit=50, + # action=discord.AuditLogAction.unban, + # after=datetime.utcnow() - timedelta(seconds=15), + # oldest_first=False, + # ) + # log: discord.AuditLogEntry = self.get_latest_log(auditlog, user) + # fields = [ + # Field( + # name="Member", + # value=f"{user.mention} ({user.name}#{user.descriminator})", + # ), + # Field( + # name="Moderator", + # value=f"{user.mention} ({user.name}#{user.descriminator})", + # ), + # Field(name="Reason", value=log.reason, inline=False), + # ] + # embed = build_embed( + # title="User Unbanned", + # description=f"A user was unbanned from {guild.name}", + # color="#bf2a3e", + # fields=fields, + # timestamp=log.created_at, + # ) + # embed.set_author( + # name=f"{user.name}#{user.discriminator} | {user.id}", + # icon_url=user.avatar_url, + # ) + # + # await channel.send(embed=embed) + # + # @commands.Cog.listener() + # async def on_member_remove(self, user: discord.User): + # modlog = self.db.jarvis.settings.find_one( + # {"guild": user.guild.id, "setting": "modlog"} + # ) + # if modlog: + # channel = user.guild.get_channel(modlog["value"]) + # await asyncio.sleep(0.5) # Need to wait for audit log + # auditlog = await user.guild.audit_logs( + # limit=50, + # action=discord.AuditLogAction.kick, + # after=datetime.utcnow() - timedelta(seconds=15), + # oldest_first=False, + # ) + # log: discord.AuditLogEntry = self.get_latest_log(auditlog, user) + # fields = [ + # Field( + # name="Member", + # value=f"{user.mention} ({user.name}#{user.descriminator})", + # ), + # Field( + # name="Moderator", + # value=f"{user.mention} ({user.name}#{user.descriminator})", + # ), + # Field(name="Reason", value=log.reason, inline=False), + # ] + # embed = build_embed( + # title="User Kicked", + # description=f"A user was kicked from {guild.name}", + # color="#bf2a3e", + # fields=fields, + # timestamp=log.created_at, + # ) + # embed.set_author( + # name=f"{user.name}#{user.discriminator} | {user.id}", + # icon_url=user.avatar_url, + # ) + # + # await channel.send(embed=embed) + # + # @commands.Cog.listener() + # async def on_member_update( + # self, before: discord.User, after: discord.User + # ): + # modlog = self.db.jarvis.settings.find_one( + # {"guild": user.guild.id, "setting": "modlog"} + # ) + # if modlog: + # channel = user.guild.get_channel(modlog["value"]) + # await asyncio.sleep(0.5) # Need to wait for audit log + # embed = None + # mute = self.db.jarvis.settings.find_one( + # {"guild": before.guild.id, "setting": "mute"} + # ) + # verified = self.db.jarvis.settings.find_one( + # {"guild": before.guild.id, "setting": "verified"} + # ) + # if mute and before.guild.get_role(mute["value"]) in after.roles: + # # TODO: User was muted + # pass + # elif mute and before.guild.get_role(mute["value"]) in before.roles: + # # TODO: User was unmuted + # pass + # elif ( + # verified + # and before.guild.get_role(verified["value"]) in before.roles + # ): + # # TODO: User was verified + # pass + # + # auditlog = await user.guild.audit_logs( + # limit=50, + # action=discord.AuditLogAction.kick, + # after=datetime.utcnow() - timedelta(seconds=15), + # oldest_first=False, + # ) + # log: discord.AuditLogEntry = self.get_latest_log(auditlog, user) + # fields = [ + # Field( + # name="Member", + # value=f"{user.mention} ({user.name}#{user.descriminator})", + # ), + # Field( + # name="Moderator", + # value=f"{user.mention} ({user.name}#{user.descriminator})", + # ), + # Field(name="Reason", value=log.reason, inline=False), + # ] + # embed = build_embed( + # title="User Kicked", + # description=f"A user was kicked from {guild.name}", + # color="#bf2a3e", + # fields=fields, + # timestamp=log.created_at, + # ) + # embed.set_author( + # name=f"{user.name}#{user.discriminator} | {user.id}", + # icon_url=user.avatar_url, + # ) + # + # await channel.send(embed=embed) def setup(bot):