Rolegiver sorting, fix duplicate modlogs, fix awaiting standard funcs

This commit is contained in:
Zeva Rose 2021-08-04 13:12:23 -06:00
parent f0d2bd1b37
commit df7df919d7
3 changed files with 32 additions and 21 deletions

View file

@ -35,10 +35,10 @@ class ModlogMemberCog(commands.Cog):
guild=guild.id, guild=guild.id,
user=user.id, user=user.id,
active=True, active=True,
sort=MongoSort(key="created_at", type="desc"), sort=MongoSort(key="created_at", direction="desc"),
) )
admin = guild.get_member(ban.admin) admin = guild.get_member(ban.admin)
embed = await modlog_embed( embed = modlog_embed(
user, user,
admin, admin,
log, log,
@ -67,10 +67,10 @@ class ModlogMemberCog(commands.Cog):
guild=guild.id, guild=guild.id,
user=user.id, user=user.id,
active=True, active=True,
sort=MongoSort(key="created_at", type="desc"), sort=MongoSort(key="created_at", direction="desc"),
) )
admin = guild.get_member(ban.admin) admin = guild.get_member(ban.admin)
embed = await modlog_embed( embed = modlog_embed(
user, user,
admin, admin,
log, log,
@ -98,10 +98,10 @@ class ModlogMemberCog(commands.Cog):
kick = Kick.get( kick = Kick.get(
guild=user.guild.id, guild=user.guild.id,
user=user.id, user=user.id,
sort=MongoSort(key="created_at", type="desc"), sort=MongoSort(key="created_at", direction="desc"),
) )
admin = user.guild.get_member(kick.admin) admin = user.guild.get_member(kick.admin)
embed = await modlog_embed( embed = modlog_embed(
user, user,
admin, admin,
log, log,
@ -126,7 +126,7 @@ class ModlogMemberCog(commands.Cog):
guild=before.guild.id, guild=before.guild.id,
user=before.id, user=before.id,
active=True, active=True,
sort=MongoSort(key="created_at", type="desc"), sort=MongoSort(key="created_at", direction="desc"),
) )
admin = before.guild.get_member(mute.admin) admin = before.guild.get_member(mute.admin)
return modlog_embed( return modlog_embed(
@ -152,7 +152,7 @@ class ModlogMemberCog(commands.Cog):
guild=before.guild.id, guild=before.guild.id,
user=before.id, user=before.id,
active=True, active=True,
sort=MongoSort(key="created_at", type="desc"), sort=MongoSort(key="created_at", direction="desc"),
) )
mute = Mute(**mute) mute = Mute(**mute)
admin = before.guild.get_member(mute.admin) admin = before.guild.get_member(mute.admin)

View file

@ -42,6 +42,8 @@ class RolegiverCog(commands.Cog):
for role_id in setting.value: for role_id in setting.value:
e_role = ctx.guild.get_role(role_id) e_role = ctx.guild.get_role(role_id)
roles.append(e_role) roles.append(e_role)
if roles:
roles.sort(lambda x: -x.position)
value = "\n".join([r.mention for r in roles]) if roles else "None" value = "\n".join([r.mention for r in roles]) if roles else "None"
fields = [ fields = [
@ -101,6 +103,9 @@ class RolegiverCog(commands.Cog):
e_role = ctx.guild.get_role(role_id) e_role = ctx.guild.get_role(role_id)
roles.append(e_role) roles.append(e_role)
if roles:
roles.sort(lambda x: -x.position)
value = "\n".join([r.mention for r in roles]) if roles else "None" value = "\n".join([r.mention for r in roles]) if roles else "None"
fields = [ fields = [
Field(name="Removed Role", value=f"{role.mention}"), Field(name="Removed Role", value=f"{role.mention}"),
@ -142,6 +147,9 @@ class RolegiverCog(commands.Cog):
e_role = ctx.guild.get_role(role_id) e_role = ctx.guild.get_role(role_id)
roles.append(e_role) roles.append(e_role)
if roles:
roles.sort(lambda x: -x.position)
value = "\n".join([r.mention for r in roles]) if roles else "None" value = "\n".join([r.mention for r in roles]) if roles else "None"
embed = build_embed( embed = build_embed(
@ -191,11 +199,12 @@ class RolegiverCog(commands.Cog):
await ctx.author.add_roles(role, reason="Rolegiver") await ctx.author.add_roles(role, reason="Rolegiver")
value = ( roles = ctx.author.roles
"\n".join([r.mention for r in ctx.author.roles]) if roles:
if ctx.author.roles roles.sort(lambda x: -x.position)
else "None" _ = roles.pop(-1)
)
value = "\n".join([r.mention for r in roles]) if roles else "None"
fields = [ fields = [
Field(name="Added Role", value=f"{role.mention}"), Field(name="Added Role", value=f"{role.mention}"),
Field(name="Prior Role(s)", value=value), Field(name="Prior Role(s)", value=value),
@ -248,11 +257,12 @@ class RolegiverCog(commands.Cog):
await ctx.author.remove_roles(role, reason="Rolegiver") await ctx.author.remove_roles(role, reason="Rolegiver")
value = ( roles = ctx.author.roles
"\n".join([r.mention for r in ctx.author.roles if r.id != role.id]) if roles:
if ctx.author.roles roles.sort(lambda x: -x.position)
else "None" _ = roles.pop(-1)
)
value = "\n".join([r.mention for r in roles]) if roles else "None"
fields = [ fields = [
Field(name="Taken Role", value=f"{role.mention}"), Field(name="Taken Role", value=f"{role.mention}"),
Field(name="Remaining Role(s)", value=value), Field(name="Remaining Role(s)", value=value),

View file

@ -20,6 +20,7 @@ class MemberEventHandler(object):
unverified = Setting.get(guild=guild.id, setting="unverified") unverified = Setting.get(guild=guild.id, setting="unverified")
if unverified: if unverified:
role = guild.get_role(unverified.value) role = guild.get_role(unverified.value)
await user.add_roles( if role not in user.roles:
role, reason="User just joined and is unverified" await user.add_roles(
) role, reason="User just joined and is unverified"
)