Created command to clear table messages.

This commit is contained in:
alwayscompiling
2022-08-11 23:00:11 -04:00
parent b2acafd6e7
commit caef6a3652
+34 -2
View File
@@ -24,6 +24,38 @@ class MessageManagement(commands.Cog, name="Message Management"):
"""
self.bot = bot
@nextcord.slash_command(
description="Clears highscores channel of all table messages. Does not change data.",
default_member_permissions=nextcord.Permissions(administrator=True),
)
async def delete_table_messages(self, interaction: nextcord.Interaction) -> None:
"""
Deletes all table messages from highscores channel. Does not change data.
Does not delete highscores channel id.
Args:
interaction (nextcord.Interaction): Interaction that invoked the command
"""
guild = highscores_data.get_guild(interaction.guild_id)
highscores_channel: nextcord.TextChannel = interaction.guild.get_channel(
guild.highscore_channel
)
await interaction.response.defer(ephemeral=True)
for table in guild.tables:
try:
table_message: nextcord.Message = await highscores_channel.fetch_message(
table.message_id
)
await table_message.delete()
except nextcord.NotFound:
# silently ignore that messages are not found. They got deleted already.
pass
await interaction.send("Table messages deleted.", ephemeral=True)
@nextcord.slash_command(
description="Triggers post/update of highscores to registered highscore channel.",
default_member_permissions=nextcord.Permissions(administrator=True),
@@ -53,7 +85,7 @@ class MessageManagement(commands.Cog, name="Message Management"):
error_response = "No tables have been created for this guild. Please create some tables."
assert (
len(highscores_data.get_guild(interaction.guild_id).tables) > 0
), await interaction.response(error_response, ephemeral=True)
), await interaction.send(error_response, ephemeral=True)
# awaiting response because posting scores takes a while
await interaction.response.defer(ephemeral=True)
@@ -66,4 +98,4 @@ class MessageManagement(commands.Cog, name="Message Management"):
# messages have been sent.
highscores_data.save_guild_data(guild)
await interaction.followup.send(f"Posted all tables to <#{channel.id}>.", ephemeral=True)
await interaction.send(f"Posted all tables to <#{channel.id}>.", ephemeral=True)