mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-04-20 16:00:29 +00:00
[commands] Add CommandNotFound error.
This commit is contained in:
parent
246698254f
commit
51186c3ca4
@ -31,6 +31,7 @@ import inspect
|
||||
from .core import GroupMixin
|
||||
from .view import StringView
|
||||
from .context import Context
|
||||
from .errors import CommandNotFound
|
||||
|
||||
class Bot(GroupMixin, discord.Client):
|
||||
"""Represents a discord bot.
|
||||
@ -203,18 +204,21 @@ class Bot(GroupMixin, discord.Client):
|
||||
|
||||
view.skip_ws()
|
||||
invoker = view.get_word()
|
||||
tmp = {
|
||||
'bot': self,
|
||||
'invoked_with': invoker,
|
||||
'message': message,
|
||||
'view': view,
|
||||
}
|
||||
ctx = Context(**tmp)
|
||||
del tmp
|
||||
if invoker in self.commands:
|
||||
command = self.commands[invoker]
|
||||
tmp = {
|
||||
'bot': self,
|
||||
'invoked_with': invoker,
|
||||
'message': message,
|
||||
'view': view,
|
||||
'command': command
|
||||
}
|
||||
ctx = Context(**tmp)
|
||||
del tmp
|
||||
ctx.command = command
|
||||
yield from command.invoke(ctx)
|
||||
else:
|
||||
exc = CommandNotFound('Command "{}" is not found'.format(invoker))
|
||||
self.dispatch('command_error', exc, ctx)
|
||||
|
||||
@asyncio.coroutine
|
||||
def on_message(self, message):
|
||||
|
@ -334,7 +334,6 @@ class Group(GroupMixin, Command):
|
||||
if ctx.invoked_subcommand:
|
||||
yield from ctx.invoked_subcommand.invoke(ctx)
|
||||
|
||||
|
||||
# Decorators
|
||||
|
||||
def command(name=None, cls=None, **attrs):
|
||||
|
@ -27,7 +27,7 @@ from discord.errors import DiscordException
|
||||
|
||||
|
||||
__all__ = [ 'CommandError', 'MissingRequiredArgument', 'BadArgument',
|
||||
'NoPrivateMessage', 'CheckFailure' ]
|
||||
'NoPrivateMessage', 'CheckFailure', 'CommandNotFound' ]
|
||||
|
||||
class CommandError(DiscordException):
|
||||
"""The base exception type for all command related errors.
|
||||
@ -40,6 +40,14 @@ class CommandError(DiscordException):
|
||||
"""
|
||||
pass
|
||||
|
||||
class CommandNotFound(CommandError):
|
||||
"""Exception raised when a command is attempted to be invoked
|
||||
but no command under that name is found.
|
||||
|
||||
This is not raised for invalid subcommands, rather just the
|
||||
initial main command that is attempted to be invoked.
|
||||
"""
|
||||
|
||||
class MissingRequiredArgument(CommandError):
|
||||
"""Exception raised when parsing a command and a parameter
|
||||
that is required is not encountered.
|
||||
|
Loading…
x
Reference in New Issue
Block a user