From 5587bce34b8b10008b419f3c6d4d3202f03943ce Mon Sep 17 00:00:00 2001 From: Zevaryx Date: Thu, 5 Aug 2021 18:45:21 -0600 Subject: [PATCH] Various modlog fixes --- jarvis/__init__.py | 2 +- jarvis/cogs/admin/ban.py | 4 +++- jarvis/cogs/modlog/member.py | 26 ++++++++++++++++++++++---- jarvis/events/member.py | 2 +- 4 files changed, 27 insertions(+), 7 deletions(-) diff --git a/jarvis/__init__.py b/jarvis/__init__.py index 65abcee..2982e9a 100644 --- a/jarvis/__init__.py +++ b/jarvis/__init__.py @@ -25,7 +25,7 @@ jarvis = commands.Bot( ) slash = SlashCommand(jarvis, sync_commands=True, sync_on_cog_reload=True) jarvis_self = Process() -__version__ = "1.10.0" +__version__ = "1.10.2" jconfig = get_config() diff --git a/jarvis/cogs/admin/ban.py b/jarvis/cogs/admin/ban.py index 21db454..e3ea742 100644 --- a/jarvis/cogs/admin/ban.py +++ b/jarvis/cogs/admin/ban.py @@ -202,7 +202,9 @@ class BanCog(CacheCog): if type == "soft": active = False - self.discord_apply_ban(ctx, reason, user, duration, active, fields) + await self.discord_apply_ban( + ctx, reason, user, duration, active, fields + ) @cog_ext.cog_slash( name="unban", diff --git a/jarvis/cogs/modlog/member.py b/jarvis/cogs/modlog/member.py index c655753..11665ad 100644 --- a/jarvis/cogs/modlog/member.py +++ b/jarvis/cogs/modlog/member.py @@ -31,6 +31,7 @@ class ModlogMemberCog(commands.Cog): log: discord.AuditLogEntry = get_latest_log(auditlog, user) admin: discord.User = log.user if admin.id == get_config().client_id: + await asyncio.sleep(3) ban = ( Ban.objects( guild=guild.id, @@ -40,7 +41,8 @@ class ModlogMemberCog(commands.Cog): .order_by("-created_at") .first() ) - admin = guild.get_member(ban.admin) + if ban: + admin = guild.get_member(ban.admin) embed = modlog_embed( user, admin, @@ -66,6 +68,7 @@ class ModlogMemberCog(commands.Cog): log: discord.AuditLogEntry = get_latest_log(auditlog, user) admin: discord.User = log.user if admin.id == get_config().client_id: + await asyncio.sleep(3) unban = ( Unban.objects( guild=guild.id, @@ -97,9 +100,19 @@ class ModlogMemberCog(commands.Cog): after=datetime.utcnow() - timedelta(seconds=15), oldest_first=False, ).flatten() + count = 0 log: discord.AuditLogEntry = get_latest_log(auditlog, user) + while not log: + if count == 30: + break + await asyncio.sleep(0.5) + log: discord.AuditLogEntry = get_latest_log(auditlog, user) + count += 1 + if not log: + return admin: discord.User = log.user if admin.id == get_config().client_id: + await asyncio.sleep(3) kick = ( Kick.objects( guild=user.guild.id, @@ -108,7 +121,8 @@ class ModlogMemberCog(commands.Cog): .order_by("-created_at") .first() ) - admin = user.guild.get_member(kick.admin) + if kick: + admin = user.guild.get_member(kick.admin) embed = modlog_embed( user, admin, @@ -130,6 +144,7 @@ class ModlogMemberCog(commands.Cog): log: discord.AuditLogEntry = get_latest_log(auditlog, before) admin: discord.User = log.user if admin.id == get_config().client_id: + await asyncio.sleep(3) mute = ( Mute.objects( guild=before.guild.id, @@ -139,7 +154,8 @@ class ModlogMemberCog(commands.Cog): .order_by("-created_at") .first() ) - admin = before.guild.get_member(mute.admin) + if mute: + admin = before.guild.get_member(mute.admin) return modlog_embed( member=before, admin=admin, @@ -159,6 +175,7 @@ class ModlogMemberCog(commands.Cog): log: discord.AuditLogEntry = get_latest_log(auditlog, before) admin: discord.User = log.user if admin.id == get_config().client_id: + await asyncio.sleep(3) mute = ( Mute.objects( guild=before.guild.id, @@ -168,7 +185,8 @@ class ModlogMemberCog(commands.Cog): .order_by("-created_at") .first() ) - admin = before.guild.get_member(mute.admin) + if mute: + admin = before.guild.get_member(mute.admin) return modlog_embed( member=before, admin=admin, diff --git a/jarvis/events/member.py b/jarvis/events/member.py index 43ea280..fadccc5 100644 --- a/jarvis/events/member.py +++ b/jarvis/events/member.py @@ -15,7 +15,7 @@ class MemberEventHandler(object): mute_role = Setting.objects(guild=guild.id, setting="mute").first() role = guild.get_role(mute_role.value) await user.add_roles( - role, reason="User is muted still muted from prior mute" + role, reason="User is still muted from prior mute" ) unverified = Setting.objects( guild=guild.id, setting="unverified"