aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bot/cogs/moderation/silence.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/bot/cogs/moderation/silence.py b/bot/cogs/moderation/silence.py
index 0fe720882..76c5a171d 100644
--- a/bot/cogs/moderation/silence.py
+++ b/bot/cogs/moderation/silence.py
@@ -72,6 +72,7 @@ class Silence(commands.Cog):
def __init__(self, bot: Bot):
self.bot = bot
+ self.muted_channels = set()
self.bot.loop.create_task(self._get_instance_vars())
async def _get_instance_vars(self) -> None:
@@ -131,6 +132,7 @@ class Silence(commands.Cog):
self.notifier.add_channel(channel)
return True
+ self.muted_channels.add(channel)
log.debug(f"Silenced #{channel} ({channel.id}) for {duration} minute(s).")
return True
@@ -149,10 +151,19 @@ class Silence(commands.Cog):
)
log.debug(f"Unsilenced channel #{channel} ({channel.id}).")
self.notifier.remove_channel(channel)
+ with suppress(KeyError):
+ self.muted_channels.remove(channel)
return True
log.debug(f"Tried to unsilence channel #{channel} ({channel.id}) but the channel was not silenced.")
return False
+ def cog_unload(self) -> None:
+ """Send alert with silenced channels on unload."""
+ if self.muted_channels:
+ channels_string = ''.join(channel.mention for channel in self.muted_channels)
+ message = f"<@&{Roles.moderators}> channels left silenced on cog unload: {channels_string}"
+ asyncio.create_task(self._mod_alerts_channel.send(message))
+
# This cannot be static (must have a __func__ attribute).
def cog_check(self, ctx: Context) -> bool:
"""Only allow moderators to invoke the commands in this cog."""