Various modlog fixes

This commit is contained in:
Zeva Rose 2021-08-05 18:45:21 -06:00
parent 148818efc3
commit 5587bce34b
4 changed files with 27 additions and 7 deletions

View file

@ -25,7 +25,7 @@ jarvis = commands.Bot(
) )
slash = SlashCommand(jarvis, sync_commands=True, sync_on_cog_reload=True) slash = SlashCommand(jarvis, sync_commands=True, sync_on_cog_reload=True)
jarvis_self = Process() jarvis_self = Process()
__version__ = "1.10.0" __version__ = "1.10.2"
jconfig = get_config() jconfig = get_config()

View file

@ -202,7 +202,9 @@ class BanCog(CacheCog):
if type == "soft": if type == "soft":
active = False 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( @cog_ext.cog_slash(
name="unban", name="unban",

View file

@ -31,6 +31,7 @@ class ModlogMemberCog(commands.Cog):
log: discord.AuditLogEntry = get_latest_log(auditlog, user) log: discord.AuditLogEntry = get_latest_log(auditlog, user)
admin: discord.User = log.user admin: discord.User = log.user
if admin.id == get_config().client_id: if admin.id == get_config().client_id:
await asyncio.sleep(3)
ban = ( ban = (
Ban.objects( Ban.objects(
guild=guild.id, guild=guild.id,
@ -40,7 +41,8 @@ class ModlogMemberCog(commands.Cog):
.order_by("-created_at") .order_by("-created_at")
.first() .first()
) )
admin = guild.get_member(ban.admin) if ban:
admin = guild.get_member(ban.admin)
embed = modlog_embed( embed = modlog_embed(
user, user,
admin, admin,
@ -66,6 +68,7 @@ class ModlogMemberCog(commands.Cog):
log: discord.AuditLogEntry = get_latest_log(auditlog, user) log: discord.AuditLogEntry = get_latest_log(auditlog, user)
admin: discord.User = log.user admin: discord.User = log.user
if admin.id == get_config().client_id: if admin.id == get_config().client_id:
await asyncio.sleep(3)
unban = ( unban = (
Unban.objects( Unban.objects(
guild=guild.id, guild=guild.id,
@ -97,9 +100,19 @@ class ModlogMemberCog(commands.Cog):
after=datetime.utcnow() - timedelta(seconds=15), after=datetime.utcnow() - timedelta(seconds=15),
oldest_first=False, oldest_first=False,
).flatten() ).flatten()
count = 0
log: discord.AuditLogEntry = get_latest_log(auditlog, user) 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 admin: discord.User = log.user
if admin.id == get_config().client_id: if admin.id == get_config().client_id:
await asyncio.sleep(3)
kick = ( kick = (
Kick.objects( Kick.objects(
guild=user.guild.id, guild=user.guild.id,
@ -108,7 +121,8 @@ class ModlogMemberCog(commands.Cog):
.order_by("-created_at") .order_by("-created_at")
.first() .first()
) )
admin = user.guild.get_member(kick.admin) if kick:
admin = user.guild.get_member(kick.admin)
embed = modlog_embed( embed = modlog_embed(
user, user,
admin, admin,
@ -130,6 +144,7 @@ class ModlogMemberCog(commands.Cog):
log: discord.AuditLogEntry = get_latest_log(auditlog, before) log: discord.AuditLogEntry = get_latest_log(auditlog, before)
admin: discord.User = log.user admin: discord.User = log.user
if admin.id == get_config().client_id: if admin.id == get_config().client_id:
await asyncio.sleep(3)
mute = ( mute = (
Mute.objects( Mute.objects(
guild=before.guild.id, guild=before.guild.id,
@ -139,7 +154,8 @@ class ModlogMemberCog(commands.Cog):
.order_by("-created_at") .order_by("-created_at")
.first() .first()
) )
admin = before.guild.get_member(mute.admin) if mute:
admin = before.guild.get_member(mute.admin)
return modlog_embed( return modlog_embed(
member=before, member=before,
admin=admin, admin=admin,
@ -159,6 +175,7 @@ class ModlogMemberCog(commands.Cog):
log: discord.AuditLogEntry = get_latest_log(auditlog, before) log: discord.AuditLogEntry = get_latest_log(auditlog, before)
admin: discord.User = log.user admin: discord.User = log.user
if admin.id == get_config().client_id: if admin.id == get_config().client_id:
await asyncio.sleep(3)
mute = ( mute = (
Mute.objects( Mute.objects(
guild=before.guild.id, guild=before.guild.id,
@ -168,7 +185,8 @@ class ModlogMemberCog(commands.Cog):
.order_by("-created_at") .order_by("-created_at")
.first() .first()
) )
admin = before.guild.get_member(mute.admin) if mute:
admin = before.guild.get_member(mute.admin)
return modlog_embed( return modlog_embed(
member=before, member=before,
admin=admin, admin=admin,

View file

@ -15,7 +15,7 @@ class MemberEventHandler(object):
mute_role = Setting.objects(guild=guild.id, setting="mute").first() mute_role = Setting.objects(guild=guild.id, setting="mute").first()
role = guild.get_role(mute_role.value) role = guild.get_role(mute_role.value)
await user.add_roles( 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( unverified = Setting.objects(
guild=guild.id, setting="unverified" guild=guild.id, setting="unverified"