diff --git a/heimdallr/commands/infractions.py b/heimdallr/commands/infractions.py index 58a5899..e70480d 100644 --- a/heimdallr/commands/infractions.py +++ b/heimdallr/commands/infractions.py @@ -22,11 +22,12 @@ from database import ( GuildSettings, Infractions as InfractionsModel, ) +from heimdallr.Heimdallr import HeimdallrClient class Infractions(Extension): def __init__(self, client): - self.client: Client = client + self.client: HeimdallrClient = client @slash_command( name="infractions", description="View your infractions", dm_permission=False @@ -218,32 +219,32 @@ class Infractions(Extension): except Exception: # pylint: disable=broad-except warning_msg = None - await ctx.send( - f'Warned {user.display_name} ({user.username}#{user.discriminator}, {user.id}) for "{reason}" with severity {weight}', # pylint: disable=line-too-long - ephemeral=True, - ) + failed_to_dm_user = not silent and warning_msg is None - - guild_settings: Optional[GuildSettings] = GuildSettings.get_or_none(GuildSettings.guild_id == int(ctx.guild_id)) - if guild_settings is not None: - if guild_settings.admin_channel is not None: - admin_channel = await self.client.fetch_channel(int(guild_settings.admin_channel)) - if admin_channel is not None: - await admin_channel.send(embed=Embed( - title=f"Warned {user.display_name} ({user.username}#{user.discriminator}, {user.id})", - description=f"{reason}", - color=infraction_colour(0x0000FF), - fields=[ - EmbedField("**Warned by**", - f"{ctx.author.display_name} ({ctx.author.username}#{ctx.author.discriminator})") - ], - )) - - if not silent and warning_msg is None: + if failed_to_dm_user: await ctx.send( - f"{user.mention} has been warned, but I couldn't DM them.", + f"{user.mention} has received an infraction, but I couldn't DM them.", ephemeral=True, ) + else: + await ctx.send( + f'Warned {user.display_name} ({user.username}#{user.discriminator}, {user.id}) for "{reason}" with severity {weight}', # pylint: disable=line-too-long + ephemeral=True, + ) + + await self.client.send_message_to_admins( + guild=ctx.guild, + embed=Embed( + title=f"Warned {user.display_name} ({user.username}#{user.discriminator}, {user.id})", + description=f"{reason}", + color=infraction_colour(0x0000FF), + fields=[ + EmbedField("**Warned by**", + f"{ctx.author.display_name} ({ctx.author.username}#{ctx.author.discriminator})" + ) + ], + ) + ) @slash_command( name="remove-infraction",