From 86bb25814d664442e4f4643d934c182b6f77107e Mon Sep 17 00:00:00 2001 From: MarkKoz Date: Mon, 24 Feb 2020 16:35:57 -0800 Subject: HelpChannels: implement the !dormant command Basically a wrapper around move_to_dormant which ensures the current channel is in use. If it's not in-use, from the invoker's perspective, the command silently fails (it does at least log). InChannelCheckFailure was considered but it seemed like it'd be too spammy, especially if there'd be a long list of allowed channels. --- bot/cogs/help_channels.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/bot/cogs/help_channels.py b/bot/cogs/help_channels.py index 9ef7fc72c..b4121c7fd 100644 --- a/bot/cogs/help_channels.py +++ b/bot/cogs/help_channels.py @@ -12,6 +12,7 @@ from discord.ext import commands from bot import constants from bot.bot import Bot +from bot.decorators import with_role from bot.utils.scheduling import Scheduler log = logging.getLogger(__name__) @@ -117,8 +118,14 @@ class HelpChannels(Scheduler, commands.Cog): return deque(available_names) @commands.command(name="dormant") - async def dormant_command(self) -> None: + @with_role(*constants.HelpChannels.cmd_whitelist) + async def dormant_command(self, ctx: commands.Context) -> None: """Make the current in-use help channel dormant.""" + in_use = self.get_category_channels(self.in_use_category) + if ctx.channel in in_use: + await self.move_to_dormant(ctx.channel) + else: + log.debug(f"{ctx.author} invoked command 'dormant' outside an in-use help channel") async def get_available_candidate(self) -> discord.TextChannel: """ -- cgit v1.2.3