diff options
| author | 2018-12-27 20:33:10 +0100 | |
|---|---|---|
| committer | 2018-12-27 20:33:10 +0100 | |
| commit | 13d9aa468ac2c3f0fd22c0314aab5a622c43f3bf (patch) | |
| tree | a54ce80f90d868edb93f4d10ea80ecb092352eac | |
| parent | Merge pull request #219 from python-discord/force-bb-watch-note (diff) | |
| parent | Merge branch 'master' into incorrect-commands-default-tag-get (diff) | |
Merge pull request #222 from python-discord/incorrect-commands-default-tag-get
CommandNotFound default to tags get before silently ignoring
| -rw-r--r-- | bot/cogs/events.py | 12 | ||||
| -rw-r--r-- | bot/cogs/tags.py | 3 | 
2 files changed, 12 insertions, 3 deletions
| diff --git a/bot/cogs/events.py b/bot/cogs/events.py index 3537c850a..edfc6e579 100644 --- a/bot/cogs/events.py +++ b/bot/cogs/events.py @@ -3,8 +3,8 @@ import logging  from discord import Colour, Embed, Member, Object  from discord.ext.commands import (      BadArgument, Bot, BotMissingPermissions, -    CommandError, CommandInvokeError, Context, -    NoPrivateMessage, UserInputError +    CommandError, CommandInvokeError, CommandNotFound, +    Context, NoPrivateMessage, UserInputError  )  from bot.cogs.modlog import ModLog @@ -121,7 +121,13 @@ class Events:              log.debug(f"Command {command} has a local error handler, ignoring.")              return -        if isinstance(e, BadArgument): +        if isinstance(e, CommandNotFound) and not hasattr(ctx, "invoked_from_error_handler"): +            tags_get_command = self.bot.get_command("tags get") +            ctx.invoked_from_error_handler = True + +            # Return to not raise the exception +            return await ctx.invoke(tags_get_command, tag_name=ctx.invoked_with) +        elif isinstance(e, BadArgument):              await ctx.send(f"Bad argument: {e}\n")              await ctx.invoke(*help_command)          elif isinstance(e, UserInputError): diff --git a/bot/cogs/tags.py b/bot/cogs/tags.py index a0ba7fdd1..b128b6de1 100644 --- a/bot/cogs/tags.py +++ b/bot/cogs/tags.py @@ -180,6 +180,9 @@ class Tags:                  if tag_data['image_url'] is not None:                      embed.set_image(url=tag_data['image_url']) +        # If its invoked from error handler just ignore it. +        elif hasattr(ctx, "invoked_from_error_handler"): +            return          # If not, prepare an error message.          else:              embed.colour = Colour.red() | 
