diff --git a/redbot/cogs/mutes/mutes.py b/redbot/cogs/mutes/mutes.py index 3ca1d40482c..b9181a5558c 100644 --- a/redbot/cogs/mutes/mutes.py +++ b/redbot/cogs/mutes/mutes.py @@ -1661,12 +1661,14 @@ async def unmute_user( ret["reason"] = _(MUTE_UNMUTE_ISSUES["role_missing"]) return ret - if guild.id in self._server_mutes: - if user.id in self._server_mutes[guild.id]: - del self._server_mutes[guild.id][user.id] + if guild.id in self._server_mutes and user.id in self._server_mutes[guild.id]: + del self._server_mutes[guild.id][user.id] if not guild.me.guild_permissions.manage_roles or role >= guild.me.top_role: ret["reason"] = _(MUTE_UNMUTE_ISSUES["permissions_issue_role"]) return ret + if not role in user.roles: + ret["reason"] = _(MUTE_UNMUTE_ISSUES["already_unmuted"]) + return ret try: await user.remove_roles(role, reason=reason) except discord.errors.Forbidden: