[commands] Add AutoShardedBot counterpart to AutoShardedClient.
This commit is contained in:
parent
aae8b783e9
commit
d22d8cc430
@ -10,7 +10,7 @@ An extension module to facilitate creation of bot commands.
|
|||||||
:license: MIT, see LICENSE for more details.
|
:license: MIT, see LICENSE for more details.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from .bot import Bot, when_mentioned, when_mentioned_or
|
from .bot import Bot, AutoShardedBot, when_mentioned, when_mentioned_or
|
||||||
from .context import Context
|
from .context import Context
|
||||||
from .core import *
|
from .core import *
|
||||||
from .errors import *
|
from .errors import *
|
||||||
|
@ -128,67 +128,7 @@ def _default_help_command(ctx, *commands : str):
|
|||||||
for page in pages:
|
for page in pages:
|
||||||
yield from destination.send(page)
|
yield from destination.send(page)
|
||||||
|
|
||||||
|
class BotBase(GroupMixin):
|
||||||
class Bot(GroupMixin, discord.Client):
|
|
||||||
"""Represents a discord bot.
|
|
||||||
|
|
||||||
This class is a subclass of :class:`discord.Client` and as a result
|
|
||||||
anything that you can do with a :class:`discord.Client` you can do with
|
|
||||||
this bot.
|
|
||||||
|
|
||||||
This class also subclasses :class:`GroupMixin` to provide the functionality
|
|
||||||
to manage commands.
|
|
||||||
|
|
||||||
Attributes
|
|
||||||
-----------
|
|
||||||
command_prefix
|
|
||||||
The command prefix is what the message content must contain initially
|
|
||||||
to have a command invoked. This prefix could either be a string to
|
|
||||||
indicate what the prefix should be, or a callable that takes in the bot
|
|
||||||
as its first parameter and :class:`discord.Message` as its second
|
|
||||||
parameter and returns the prefix. This is to facilitate "dynamic"
|
|
||||||
command prefixes. This callable can be either a regular function or
|
|
||||||
a coroutine.
|
|
||||||
|
|
||||||
The command prefix could also be a list or a tuple indicating that
|
|
||||||
multiple checks for the prefix should be used and the first one to
|
|
||||||
match will be the invocation prefix. You can get this prefix via
|
|
||||||
:attr:`Context.prefix`.
|
|
||||||
description : str
|
|
||||||
The content prefixed into the default help message.
|
|
||||||
self_bot : bool
|
|
||||||
If ``True``, the bot will only listen to commands invoked by itself rather
|
|
||||||
than ignoring itself. If ``False`` (the default) then the bot will ignore
|
|
||||||
itself. This cannot be changed once initialised.
|
|
||||||
formatter : :class:`HelpFormatter`
|
|
||||||
The formatter used to format the help message. By default, it uses a
|
|
||||||
the :class:`HelpFormatter`. Check it for more info on how to override it.
|
|
||||||
If you want to change the help command completely (add aliases, etc) then
|
|
||||||
a call to :meth:`remove_command` with 'help' as the argument would do the
|
|
||||||
trick.
|
|
||||||
pm_help : Optional[bool]
|
|
||||||
A tribool that indicates if the help command should PM the user instead of
|
|
||||||
sending it to the channel it received it from. If the boolean is set to
|
|
||||||
``True``, then all help output is PM'd. If ``False``, none of the help
|
|
||||||
output is PM'd. If ``None``, then the bot will only PM when the help
|
|
||||||
message becomes too long (dictated by more than 1000 characters).
|
|
||||||
Defaults to ``False``.
|
|
||||||
help_attrs : dict
|
|
||||||
A dictionary of options to pass in for the construction of the help command.
|
|
||||||
This allows you to change the command behaviour without actually changing
|
|
||||||
the implementation of the command. The attributes will be the same as the
|
|
||||||
ones passed in the :class:`Command` constructor. Note that ``pass_context``
|
|
||||||
will always be set to ``True`` regardless of what you pass in.
|
|
||||||
command_not_found : str
|
|
||||||
The format string used when the help command is invoked with a command that
|
|
||||||
is not found. Useful for i18n. Defaults to ``"No command called {} found."``.
|
|
||||||
The only format argument is the name of the command passed.
|
|
||||||
command_has_no_subcommands : str
|
|
||||||
The format string used when the help command is invoked with requests for a
|
|
||||||
subcommand but the command does not have any subcommands. Defaults to
|
|
||||||
``"Command {0.name} has no subcommands."``. The first format argument is the
|
|
||||||
:class:`Command` attempted to get a subcommand and the second is the name.
|
|
||||||
"""
|
|
||||||
def __init__(self, command_prefix, formatter=None, description=None, pm_help=False, **options):
|
def __init__(self, command_prefix, formatter=None, description=None, pm_help=False, **options):
|
||||||
super().__init__(**options)
|
super().__init__(**options)
|
||||||
self.command_prefix = command_prefix
|
self.command_prefix = command_prefix
|
||||||
@ -683,3 +623,71 @@ class Bot(GroupMixin, discord.Client):
|
|||||||
@asyncio.coroutine
|
@asyncio.coroutine
|
||||||
def on_message(self, message):
|
def on_message(self, message):
|
||||||
yield from self.process_commands(message)
|
yield from self.process_commands(message)
|
||||||
|
|
||||||
|
class Bot(BotBase, discord.Client):
|
||||||
|
"""Represents a discord bot.
|
||||||
|
|
||||||
|
This class is a subclass of :class:`discord.Client` and as a result
|
||||||
|
anything that you can do with a :class:`discord.Client` you can do with
|
||||||
|
this bot.
|
||||||
|
|
||||||
|
This class also subclasses :class:`GroupMixin` to provide the functionality
|
||||||
|
to manage commands.
|
||||||
|
|
||||||
|
Attributes
|
||||||
|
-----------
|
||||||
|
command_prefix
|
||||||
|
The command prefix is what the message content must contain initially
|
||||||
|
to have a command invoked. This prefix could either be a string to
|
||||||
|
indicate what the prefix should be, or a callable that takes in the bot
|
||||||
|
as its first parameter and :class:`discord.Message` as its second
|
||||||
|
parameter and returns the prefix. This is to facilitate "dynamic"
|
||||||
|
command prefixes. This callable can be either a regular function or
|
||||||
|
a coroutine.
|
||||||
|
|
||||||
|
The command prefix could also be a list or a tuple indicating that
|
||||||
|
multiple checks for the prefix should be used and the first one to
|
||||||
|
match will be the invocation prefix. You can get this prefix via
|
||||||
|
:attr:`Context.prefix`.
|
||||||
|
description : str
|
||||||
|
The content prefixed into the default help message.
|
||||||
|
self_bot : bool
|
||||||
|
If ``True``, the bot will only listen to commands invoked by itself rather
|
||||||
|
than ignoring itself. If ``False`` (the default) then the bot will ignore
|
||||||
|
itself. This cannot be changed once initialised.
|
||||||
|
formatter : :class:`HelpFormatter`
|
||||||
|
The formatter used to format the help message. By default, it uses a
|
||||||
|
the :class:`HelpFormatter`. Check it for more info on how to override it.
|
||||||
|
If you want to change the help command completely (add aliases, etc) then
|
||||||
|
a call to :meth:`remove_command` with 'help' as the argument would do the
|
||||||
|
trick.
|
||||||
|
pm_help : Optional[bool]
|
||||||
|
A tribool that indicates if the help command should PM the user instead of
|
||||||
|
sending it to the channel it received it from. If the boolean is set to
|
||||||
|
``True``, then all help output is PM'd. If ``False``, none of the help
|
||||||
|
output is PM'd. If ``None``, then the bot will only PM when the help
|
||||||
|
message becomes too long (dictated by more than 1000 characters).
|
||||||
|
Defaults to ``False``.
|
||||||
|
help_attrs : dict
|
||||||
|
A dictionary of options to pass in for the construction of the help command.
|
||||||
|
This allows you to change the command behaviour without actually changing
|
||||||
|
the implementation of the command. The attributes will be the same as the
|
||||||
|
ones passed in the :class:`Command` constructor. Note that ``pass_context``
|
||||||
|
will always be set to ``True`` regardless of what you pass in.
|
||||||
|
command_not_found : str
|
||||||
|
The format string used when the help command is invoked with a command that
|
||||||
|
is not found. Useful for i18n. Defaults to ``"No command called {} found."``.
|
||||||
|
The only format argument is the name of the command passed.
|
||||||
|
command_has_no_subcommands : str
|
||||||
|
The format string used when the help command is invoked with requests for a
|
||||||
|
subcommand but the command does not have any subcommands. Defaults to
|
||||||
|
``"Command {0.name} has no subcommands."``. The first format argument is the
|
||||||
|
:class:`Command` attempted to get a subcommand and the second is the name.
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|
||||||
|
class AutoShardedBot(BotBase, discord.AutoShardedClient):
|
||||||
|
"""This is similar to :class:`Bot` except that it is derived from
|
||||||
|
:class:`discord.AutoShardedClient` instead.
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
Loading…
x
Reference in New Issue
Block a user