From a940ba7aba6963cd75a822b9485ec3533a293fe0 Mon Sep 17 00:00:00 2001 From: Zevaryx Date: Sat, 24 Jul 2021 21:50:45 -0600 Subject: [PATCH] Change ban/kick messages to embeds, closes #70 --- jarvis/__init__.py | 11 ++++-- jarvis/cogs/admin.py | 80 ++++++++++++++++++++++++++++++++++---------- 2 files changed, 72 insertions(+), 19 deletions(-) diff --git a/jarvis/__init__.py b/jarvis/__init__.py index 1578d1e..58f6397 100644 --- a/jarvis/__init__.py +++ b/jarvis/__init__.py @@ -14,8 +14,15 @@ from psutil import Process from jarvis import logo, utils from jarvis.config import get_config from jarvis.db import DBManager -from jarvis.db.types import (Autopurge, Autoreact, Ban, Lock, Mute, Setting, - Warning) +from jarvis.db.types import ( + Autopurge, + Autoreact, + Ban, + Lock, + Mute, + Setting, + Warning, +) from jarvis.utils import build_embed from jarvis.utils.field import Field diff --git a/jarvis/cogs/admin.py b/jarvis/cogs/admin.py index 86946b9..5aa422f 100644 --- a/jarvis/cogs/admin.py +++ b/jarvis/cogs/admin.py @@ -136,8 +136,25 @@ class AdminCog(commands.Cog): if mtype == "temp": user_message += f"\nDuration: {duration} hours" + fields = [Field(name="Type", value=mtype)] + + if mtype == "temp": + fields.append(Field(name="Duration", value=f"{duration} hour(s)")) + + user_embed = build_embed( + title="You have been banned", + description=f"Reason: {reason}", + fields=fields, + ) + + user_embed.set_author( + name=ctx.author.name + "#" + ctx.author.discriminator, + icon_url=ctx.author.avatar_url, + ) + user_embed.set_thumbnail(url=ctx.guild.icon_url) + try: - await user.send(user_message) + await user.send(embed=user_embed) except Exception: send_failed = True try: @@ -149,14 +166,21 @@ class AdminCog(commands.Cog): if mtype == "soft": await ctx.guild.unban(user, reason="Ban was softban") - message = ( - f"{user.name} has been {mtype}banned from {guild_name}." - + f" Reason:\n{reason}" + fields.append(Field(name="DM Sent?", value=str(not send_failed))) + + admin_embed = build_embed( + title="User Banned", + description=f"Reason: {reason}", + fields=fields, ) - if send_failed: - message += "\n**Note: DM failed to send to user.**" - await ctx.send(message) + admin_embed.set_author( + name=user.name + "#" + user.discriminator, icon_url=user.avatar_url + ) + admin_embed.set_thumbnail(url=user.avatar_url) + admin_embed.set_footer(text=f"User ID: {user.id}") + + await ctx.send(embed=admin_embed) if type != "temp": duration = None active = True @@ -475,17 +499,39 @@ class AdminCog(commands.Cog): "Mr. Stark is displeased with your presence. Please leave." ) guild_name = ctx.guild.name - try: - await user.send( - f"You have been kicked from {guild_name}. Reason:\n{reason}" - ) - except Exception: - await ctx.send("Unable to message user.") - await ctx.guild.kick(user, reason=reason) - await ctx.send( - f"{user.name} has been kicked from {guild_name}." - + f"Reason:\n{reason}" + embed = build_embed( + title=f"You have been kicked from {guild_name}", + description=f"Reason: {reason}", + fields=[], ) + + embed.set_author( + name=ctx.author.name + "#" + ctx.author.discriminator, + icon_url=ctx.author.avatar_url, + ) + embed.set_thumbnail(ctx.guild.icon_url) + + send_failed = False + try: + await user.send(embed=embed) + except Exception: + send_failed = True + await ctx.guild.kick(user, reason=reason) + + embed = build_embed( + title="User Kicked", + description=f"Reason: {reason}", + fields=[], + ) + + embed.set_author( + name=user.name + "#" + user.discriminator, + icon_url=user.avatar_url, + ) + embed.set_thumbnail(url=user.avatar_url) + embed.set_footer(text=f"User ID: {user.id}") + + await ctx.send(embed=embed) _ = Kick( user=user.id, reason=reason,