From 00c8227b8e98a1c5dd28109166bbd9901a451598 Mon Sep 17 00:00:00 2001 From: imcompiling Date: Thu, 16 May 2024 21:45:36 -0400 Subject: [PATCH] Update refresh messages command to be able to choose a channel. --- cogs/commands/refresh.py | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/cogs/commands/refresh.py b/cogs/commands/refresh.py index cadc1a5..ba92dd0 100644 --- a/cogs/commands/refresh.py +++ b/cogs/commands/refresh.py @@ -2,10 +2,12 @@ Contained commands and views for refresh commands. """ +import os + import nextcord from nextcord.ext import commands -from utils import edit_clan_council_info, update_clan_messages +from utils import MESSAGES_DIR, edit_clan_council_info, update_clan_messages class RefreshCog(commands.Cog, name="Refresh Commands"): @@ -29,15 +31,33 @@ class RefreshCog(commands.Cog, name="Refresh Commands"): """ @refresh.subcommand(description="Force refresh all of the bot managed messages.") - async def messages(self, interaction: nextcord.Interaction): + async def messages( + self, + interaction: nextcord.Interaction, + channel: nextcord.TextChannel = nextcord.SlashOption( + description="Channel to refresh messages in.", + required=False, + ), + ): """ Calls update_clan_messages() to update all messages. Args: interaction (nextcord.Interaction): Interaction with the command. + channel (nextcord.TextChannel): channel to refresh messages in. """ await interaction.response.defer(ephemeral=True) - await update_clan_messages(interaction.guild) + + if channel is None: + channel_updates = [ + dir_name + for dir_name in os.listdir(MESSAGES_DIR) + if os.path.isdir(f"{MESSAGES_DIR}/{dir_name}") + ] + else: + channel_updates = [channel.name] + + await update_clan_messages(interaction.guild, channel_updates) await interaction.followup.send("Messages have been refreshed.", ephemeral=True) @refresh.subcommand(description="Updates the current council info message.")