diff options
| -rw-r--r-- | bot/exts/evergreen/error_handler.py | 4 | ||||
| -rw-r--r-- | bot/exts/evergreen/snakes/_snakes_cog.py | 27 | 
2 files changed, 10 insertions, 21 deletions
| diff --git a/bot/exts/evergreen/error_handler.py b/bot/exts/evergreen/error_handler.py index 6e518435..99af1519 100644 --- a/bot/exts/evergreen/error_handler.py +++ b/bot/exts/evergreen/error_handler.py @@ -42,8 +42,8 @@ class CommandErrorHandler(commands.Cog):      @commands.Cog.listener()      async def on_command_error(self, ctx: commands.Context, error: commands.CommandError) -> None:          """Activates when a command opens an error.""" -        if hasattr(ctx.command, 'on_error'): -            logging.debug("A command error occured but the command had it's own error handler.") +        if getattr(error, 'handled', False): +            logging.debug(f"Command {ctx.command} had its error already handled locally; ignoring.")              return          error = getattr(error, 'original', error) diff --git a/bot/exts/evergreen/snakes/_snakes_cog.py b/bot/exts/evergreen/snakes/_snakes_cog.py index 70bb0e73..4fa4dcd1 100644 --- a/bot/exts/evergreen/snakes/_snakes_cog.py +++ b/bot/exts/evergreen/snakes/_snakes_cog.py @@ -15,7 +15,7 @@ import aiohttp  import async_timeout  from PIL import Image, ImageDraw, ImageFont  from discord import Colour, Embed, File, Member, Message, Reaction -from discord.ext.commands import BadArgument, Bot, Cog, CommandError, Context, bot_has_permissions, group +from discord.ext.commands import Bot, Cog, CommandError, Context, bot_has_permissions, group  from bot.constants import ERROR_REPLIES, Tokens  from bot.exts.evergreen.snakes import _utils as utils @@ -1126,26 +1126,15 @@ class Snakes(Cog):      # endregion      # region: Error handlers -    @get_command.error      @card_command.error -    @video_command.error      async def command_error(self, ctx: Context, error: CommandError) -> None:          """Local error handler for the Snake Cog.""" -        embed = Embed() -        embed.colour = Colour.red() - -        if isinstance(error, BadArgument): -            embed.description = str(error) -            embed.title = random.choice(ERROR_REPLIES) - -        elif isinstance(error, OSError): -            log.error(f"snake_card encountered an OSError: {error} ({error.original})") +        original_error = getattr(error, "original", None) +        if isinstance(original_error, OSError): +            error.handled = True +            embed = Embed() +            embed.colour = Colour.red() +            log.error(f"snake_card encountered an OSError: {error} ({original_error})")              embed.description = "Could not generate the snake card! Please try again."              embed.title = random.choice(ERROR_REPLIES) - -        else: -            log.error(f"Unhandled tag command error: {error} ({error.original})") -            return - -        await ctx.send(embed=embed) -    # endregion +            await ctx.send(embed=embed) | 
