From 9589439ea6e40d582328aaa9a63e82a9c80efa6f Mon Sep 17 00:00:00 2001 From: Kowlin Date: Thu, 18 Jul 2024 22:49:39 +0200 Subject: [PATCH 1/3] Fix unmuting when a mod isn't a mod anymore --- redbot/cogs/mutes/mutes.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/redbot/cogs/mutes/mutes.py b/redbot/cogs/mutes/mutes.py index eea518af836..4909cd16358 100644 --- a/redbot/cogs/mutes/mutes.py +++ b/redbot/cogs/mutes/mutes.py @@ -329,7 +329,7 @@ async def _auto_unmute_user(self, guild: discord.Guild, data: dict): del muted_users[str(data["member"])] del self._server_mutes[guild.id][data["member"]] return - result = await self.unmute_user(guild, author, member, _("Automatic unmute")) + result = await self.unmute_user(guild, None, member, _("Automatic unmute")) async with self.config.guild(guild).muted_users() as muted_users: if str(member.id) in muted_users: del muted_users[str(member.id)] @@ -1750,7 +1750,7 @@ async def mute_user( async def unmute_user( self, guild: discord.Guild, - author: discord.Member, + author: Union[discord.Member, None], user: discord.Member, reason: Optional[str] = None, ) -> MuteResponse: @@ -1760,7 +1760,7 @@ async def unmute_user( ret: MuteResponse = MuteResponse(success=False, reason=None, user=user) mute_role_id = await self.config.guild(guild).mute_role() - if not await self.is_allowed_by_hierarchy(guild, author, user): + if author is not None and not await self.is_allowed_by_hierarchy(guild, author, user): ret.reason = _(MUTE_UNMUTE_ISSUES["hierarchy_problem"]) return ret From 7feb1d98bb4081e9743dad1a12e9b9d1de63de86 Mon Sep 17 00:00:00 2001 From: Kowlin <10947836+Kowlin@users.noreply.github.com> Date: Fri, 19 Jul 2024 00:18:55 +0200 Subject: [PATCH 2/3] Update redbot/cogs/mutes/mutes.py Co-authored-by: TrustyJAID --- redbot/cogs/mutes/mutes.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/redbot/cogs/mutes/mutes.py b/redbot/cogs/mutes/mutes.py index 4909cd16358..49674c4df3b 100644 --- a/redbot/cogs/mutes/mutes.py +++ b/redbot/cogs/mutes/mutes.py @@ -1750,7 +1750,7 @@ async def mute_user( async def unmute_user( self, guild: discord.Guild, - author: Union[discord.Member, None], + author: Optional[discord.Member], user: discord.Member, reason: Optional[str] = None, ) -> MuteResponse: From ec53edc1b1fa27f7ee0f505deedc018c46783bda Mon Sep 17 00:00:00 2001 From: Kowlin Date: Sun, 4 Aug 2024 22:05:06 +0200 Subject: [PATCH 3/3] Do the same for channel mutes --- redbot/cogs/mutes/mutes.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/redbot/cogs/mutes/mutes.py b/redbot/cogs/mutes/mutes.py index 49674c4df3b..ee150640704 100644 --- a/redbot/cogs/mutes/mutes.py +++ b/redbot/cogs/mutes/mutes.py @@ -507,7 +507,7 @@ async def _auto_channel_unmute_user( del self._channel_mutes[channel.id][data["member"]] return None result = await self.channel_unmute_user( - channel.guild, channel, author, member, _("Automatic unmute") + channel.guild, channel, None, member, _("Automatic unmute") ) async with self.config.channel(channel).muted_users() as muted_users: if str(member.id) in muted_users: @@ -1926,7 +1926,7 @@ async def channel_unmute_user( self, guild: discord.Guild, channel: discord.abc.GuildChannel, - author: discord.Member, + author: Optional[discord.Member], user: discord.Member, reason: Optional[str] = None, *, @@ -1963,7 +1963,7 @@ async def channel_unmute_user( if channel.permissions_for(guild.me).move_members: move_channel = True - if not await self.is_allowed_by_hierarchy(guild, author, user): + if author is not None and not await self.is_allowed_by_hierarchy(guild, author, user): ret.reason = _(MUTE_UNMUTE_ISSUES["hierarchy_problem"]) return ret