|
@ -31,6 +31,7 @@ import inspect |
|
|
from .core import GroupMixin |
|
|
from .core import GroupMixin |
|
|
from .view import StringView |
|
|
from .view import StringView |
|
|
from .context import Context |
|
|
from .context import Context |
|
|
|
|
|
from .errors import CommandNotFound |
|
|
|
|
|
|
|
|
class Bot(GroupMixin, discord.Client): |
|
|
class Bot(GroupMixin, discord.Client): |
|
|
"""Represents a discord bot. |
|
|
"""Represents a discord bot. |
|
@ -203,18 +204,21 @@ class Bot(GroupMixin, discord.Client): |
|
|
|
|
|
|
|
|
view.skip_ws() |
|
|
view.skip_ws() |
|
|
invoker = view.get_word() |
|
|
invoker = view.get_word() |
|
|
|
|
|
tmp = { |
|
|
|
|
|
'bot': self, |
|
|
|
|
|
'invoked_with': invoker, |
|
|
|
|
|
'message': message, |
|
|
|
|
|
'view': view, |
|
|
|
|
|
} |
|
|
|
|
|
ctx = Context(**tmp) |
|
|
|
|
|
del tmp |
|
|
if invoker in self.commands: |
|
|
if invoker in self.commands: |
|
|
command = self.commands[invoker] |
|
|
command = self.commands[invoker] |
|
|
tmp = { |
|
|
ctx.command = command |
|
|
'bot': self, |
|
|
|
|
|
'invoked_with': invoker, |
|
|
|
|
|
'message': message, |
|
|
|
|
|
'view': view, |
|
|
|
|
|
'command': command |
|
|
|
|
|
} |
|
|
|
|
|
ctx = Context(**tmp) |
|
|
|
|
|
del tmp |
|
|
|
|
|
yield from command.invoke(ctx) |
|
|
yield from command.invoke(ctx) |
|
|
|
|
|
else: |
|
|
|
|
|
exc = CommandNotFound('Command "{}" is not found'.format(invoker)) |
|
|
|
|
|
self.dispatch('command_error', exc, ctx) |
|
|
|
|
|
|
|
|
@asyncio.coroutine |
|
|
@asyncio.coroutine |
|
|
def on_message(self, message): |
|
|
def on_message(self, message): |
|
|