From 54e65082bcc94d2bae0d8d3bcc04449d8cf735d3 Mon Sep 17 00:00:00 2001 From: Flame442 <34169552+Flame442@users.noreply.github.com> Date: Sat, 18 Jan 2020 10:10:25 -0800 Subject: [PATCH] =?UTF-8?q?[Admin]=20Notify=20when=20the=20user=20has/does?= =?UTF-8?q?n't=20have=20the=20role=20when=20att=E2=80=A6=20(#3408)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update admin.py * Create 3010.enhance.rst --- changelog.d/admin/3010.enhance.rst | 1 + redbot/cogs/admin/admin.py | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 changelog.d/admin/3010.enhance.rst diff --git a/changelog.d/admin/3010.enhance.rst b/changelog.d/admin/3010.enhance.rst new file mode 100644 index 000000000..5db617388 --- /dev/null +++ b/changelog.d/admin/3010.enhance.rst @@ -0,0 +1 @@ +Role granting/removing commands will now notify when the user already has/doesn't have a role when attempting to add/remove it. diff --git a/redbot/cogs/admin/admin.py b/redbot/cogs/admin/admin.py index e85e302b4..245cc242e 100644 --- a/redbot/cogs/admin/admin.py +++ b/redbot/cogs/admin/admin.py @@ -121,8 +121,13 @@ class Admin(commands.Cog): async def _addrole( self, ctx: commands.Context, member: discord.Member, role: discord.Role, *, check_user=True ): - if member is None: - member = ctx.author + if role in member.roles: + await ctx.send( + _("{member.display_name} already has the role {role.name}.").format( + role=role, member=member + ) + ) + return if check_user and not self.pass_user_hierarchy_check(ctx, role): await ctx.send(_(USER_HIERARCHY_ISSUE_ADD).format(role=role, member=member)) return @@ -146,8 +151,13 @@ class Admin(commands.Cog): async def _removerole( self, ctx: commands.Context, member: discord.Member, role: discord.Role, *, check_user=True ): - if member is None: - member = ctx.author + if role not in member.roles: + await ctx.send( + _("{member.display_name} does not have the role {role.name}.").format( + role=role, member=member + ) + ) + return if check_user and not self.pass_user_hierarchy_check(ctx, role): await ctx.send(_(USER_HIERARCHY_ISSUE_REMOVE).format(role=role, member=member)) return