diff --git a/redbot/cogs/mod/mutes.py b/redbot/cogs/mod/mutes.py index 5ee6126cc..ee903c7ce 100644 --- a/redbot/cogs/mod/mutes.py +++ b/redbot/cogs/mod/mutes.py @@ -22,6 +22,8 @@ mute_unmute_issues = { "permission and the user I'm muting must be " "lower than myself in the role hierarchy." ), + "left_guild": _("The user has left the server while applying an overwrite."), + "unknown_channel": _("The channel I tried to mute the user in isn't found."), } _ = T_ @@ -422,6 +424,11 @@ class MuteMixin(MixinMeta): await channel.set_permissions(user, overwrite=overwrites, reason=reason) except discord.Forbidden: return False, _(mute_unmute_issues["permissions_issue"]) + except discord.NotFound as e: + if e.code == 10003: + return False, _(mute_unmute_issues["unknown_channel"]) + elif e.code == 10009: + return False, _(mute_unmute_issues["left_guild"]) else: await self.settings.member(user).set_raw( "perms_cache", str(channel.id), value=old_overs @@ -460,6 +467,11 @@ class MuteMixin(MixinMeta): await channel.set_permissions(user, overwrite=overwrites, reason=reason) except discord.Forbidden: return False, _(mute_unmute_issues["permissions_issue"]) + except discord.NotFound as e: + if e.code == 10003: + return False, _(mute_unmute_issues["unknown_channel"]) + elif e.code == 10009: + return False, _(mute_unmute_issues["left_guild"]) else: await self.settings.member(user).clear_raw("perms_cache", str(channel.id)) return True, None