diff --git a/cogs/commands/data_management.py b/cogs/commands/data_management.py index 13b29bc..8bce454 100644 --- a/cogs/commands/data_management.py +++ b/cogs/commands/data_management.py @@ -126,7 +126,20 @@ class DataManagementCog(commands.Cog, name="Table Management"): category_name (str): Category to remove user from. Is SlashOption. user_name (str): The user to remove. Is SlashOption. """ - # TODO ensure input params are valid + + guild = highscores_data.get_guild(interaction.guild_id) + + try: + guild.get_table(table_name).get_category(category_name).remove_score(user_name) + await send_highscore_message( + interaction.guild.get_channel(guild.highscore_channel), guild, guild.get_table(table_name) + ) + await interaction.response.send_message( + f'User "{user_name}" removed from "{category_name}".', ephemeral=True + ) + + except nextcord.errors.ApplicationInvokeError: + await interaction.response.send_message("Invalid parameter(s).", ephemeral=True) @user.subcommand(description="Deletes a user's scores from entire table.") async def from_table( @@ -143,7 +156,18 @@ class DataManagementCog(commands.Cog, name="Table Management"): table_name (str): Table to remove user from. Is SlashOption. user_name (str): The user to remove. Is SlashOption. """ - # TODO ensure params are valid + guild = highscores_data.get_guild(interaction.guild_id) + + try: + for category in guild.get_table(table_name).categories: + category.remove_score(user_name) + await send_highscore_message( + interaction.guild.get_channel(guild.highscore_channel), guild, guild.get_table(table_name) + ) + await interaction.response.send_message(f'User "{user_name}" removed from all categories.', ephemeral=True) + + except nextcord.errors.ApplicationInvokeError: + await interaction.response.send_message("Invalid parameter(s).", ephemeral=True) @from_category.on_autocomplete("table_name") @from_table.on_autocomplete("table_name")