873 Commits

Author SHA1 Message Date
Rapptz
a0f37f8e85 [commands] Fix issue with proper local error handlers not beign called. 2016-06-10 01:07:03 -04:00
Rapptz
b9c7b05176 [commands] Unify Command.handle_local_error into general dispatcher. 2016-06-05 00:35:27 -04:00
Rapptz
661645ac97 [commands] Add Command.qualified_name to get the full command name.
This also sets `__str__` to do the same thing.
2016-06-04 22:31:00 -04:00
Rapptz
37dfe38af5 [commands] Fix bug where Context.command would not update. 2016-06-04 22:29:50 -04:00
Rapptz
9d9a20c128 [commands] Fix bug where subgroups would be repeatedly called.
This happened due to not resetting the `invoked_subcommand` state
tracking. Since the `invoked_subcommand` was not reset, it would always
assume that it was valid and repeatedly call it when passed invalid
subcommands/arguments.
2016-06-04 22:04:05 -04:00
Rapptz
24a9da04db [commands] Cleanup Command.invoke code due to exception propagation. 2016-06-04 21:41:01 -04:00
Khazhismel Kumykov
33a69681fc [commands] Dispatch command_error on command exec error.
Provide fallback on_command_error - will only fire if no cog handlers and
no local handler.
Propagate exceptions in checks and argument parsing to bot.
2016-06-04 21:22:10 -04:00
Rapptz
20e86973ea [commands] Delete frame objects when done using them. 2016-05-31 23:22:53 -04:00
Rapptz
3c8fcd3584 [commands] Add support for self-bots. 2016-05-31 20:30:17 -04:00
Rapptz
fdaa4299a3 [commands] Fix when_mentioned when handling nicknames. 2016-05-01 07:06:19 -04:00
Rapptz
7f09acf871 [commands] Allow role mentions to work with discord.Role params.
This also fixes the Member regex to support the new <@!user_id> syntax
and allows colours to have a leading # before the number.
2016-04-29 08:45:12 -04:00
Rapptz
1c623ccf11 Begin working on gateway v4 support.
Bump websockets requirement to v3.1

Should be squashed...
2016-04-27 18:36:13 -04:00
Rapptz
e0ca746ad4 [commands] Make sure that mentions are the entire string. 2016-04-23 02:13:34 -04:00
Rapptz
054c9c7109 [commands] CommandError derived exceptions in checks don't crash help. 2016-04-13 14:25:45 -04:00
Rapptz
82b2421ac7 [commands] Add deterministic cog unloading.
The special function is `__unload` to prevent with name conflicts with
existing or future cogs.
2016-04-04 04:45:15 -04:00
Rapptz
4451091c91 [commands] Fix pagination logic a little inside HelpFormatter.
This should prevent pages accidentally reaching >2k chars.
2016-04-02 08:15:34 -04:00
Rapptz
d79a13d7bc [commands] Refactor special cased discord.py converters.
Code is a little more straightforward. The Member and Channel special
cases will now work in private message contexts when given a name. The
Member special case will also work if you pass in a name and
discriminator combo.
2016-04-01 07:27:39 -04:00
Rapptz
c015e492d7 [commands] Don't yield from inside bot utility functions. 2016-03-31 20:09:20 -04:00
Will Tekulve
174016c918 [commands] Fix infinite recursion on subgroups without a command.
Just as an FYI, ctx.invoked_subcommand will end up being an instance
    of commands.Group!
2016-03-31 05:34:51 -04:00
Rapptz
050c668eac [commands] Add bot decorators into __all__. 2016-03-11 23:19:05 -05:00
Rapptz
4a1313f00c [commands] Add when_mentioned_or helper to have mentions and prefixes. 2016-03-05 20:10:11 -05:00
Rapptz
c0dba0f4f2 [commands] Fix typo in Bot.upload docstring. 2016-03-02 23:27:57 -05:00
Rapptz
6a31f6af1e [commands] Fix NameError in bot_has_permissions. 2016-03-02 23:18:47 -05:00
Rapptz
f49dc81adf [commands] bot_has_permissions decorator actually checks for bot. 2016-03-02 21:54:56 -05:00
Rapptz
bf2b8744a5 [commands] Do not swallow AttributeErrors raised by the setup function 2016-02-24 15:14:20 -05:00
Rapptz
98090a2a57 [commands] Helper functions now take *args and **kwargs. 2016-02-18 19:42:03 -05:00
Rapptz
baf1312d0e [commands] Raise RuntimeError instead of StopIteration. 2016-02-06 01:38:41 -05:00
Rapptz
17e17cade9 [commands] Fix crash when a group has no commands and help is requested 2016-01-30 20:29:58 -05:00
Rapptz
7056a1f0ec [commands] Change signature convention to use POSIX standards. 2016-01-29 21:40:19 -05:00
Rapptz
0466f5965b [commands] Raise TypeError if the name is not a string. 2016-01-29 20:11:22 -05:00
Rapptz
45c6619018 [commands] Context.invoke will now return what the command returns. 2016-01-28 16:44:16 -05:00
Rapptz
1688d513e8 [commands] Context.invoke just invokes a command with no special case.
Previously it would both forward and invoke depending if there were no
kwargs given. Now it just passes in the arguments to another command
without doing any special casing on the no argument case.
2016-01-28 03:24:50 -05:00
Rapptz
d8d4c4e843 [commands] Fix typo on HelpFormatter.show_check_failure attribute. 2016-01-27 06:37:31 -05:00
Rapptz
8caadb5f03 [commands] Fix discord.Invite special case handling in parameters.
This led to decorating a lot of things into @asyncio.coroutine.
Unfortunately there's no way to lower the amount of decoration since
coroutines spread like a virus.
2016-01-24 02:18:39 -05:00
Rapptz
d013032522 [commands] Allow setting the bot error messages in the help command.
This is to help out those folks that don't speak English.
2016-01-23 04:00:41 -05:00
Rapptz
bb5e222f29 [commands] Add Bot.help_attrs to customise the help command.
The help message now uses the invoked_with attribute of the context to
get the name of the command it uses instead of a hardcoded help.
2016-01-23 03:43:54 -05:00
Rapptz
abbe79919b [commands] Change Bot.pm_help to be an optional bool.
The behaviour of passing in pm_help=None makes it so the bot will only
send private messages if the length of the message is too "big", which
is defined as having more than 1000 characters in the output.
2016-01-23 03:15:12 -05:00
Rapptz
b98a8c1e14 [commands] Add Command.no_pm attribute to block a command in PM. 2016-01-22 07:21:40 -05:00
Rapptz
a82176120c [commands] help command now uses the full name in the signature. 2016-01-17 17:17:30 -05:00
Rapptz
d1508bc739 [commands] Fix indentation error in commands.bot_has_role docstring. 2016-01-16 23:35:58 -05:00
Rapptz
3ebe64c776 [commands] Add checks for checking bot roles and permissions.
There was a bug with has_permissions that checked the bot's permissions
instead of the message author which was also corrected. The docstring
itself hinted that it checked for the author rather than the bot.
2016-01-15 17:24:27 -05:00
Rapptz
bc7606a42c [commands] Add on_command and on_command_completion events. 2016-01-14 12:49:42 -05:00
Rapptz
41d8dc63f4 [commands] Change behaviour of consume rest to be more useful.
You can get back the old behaviour by passing in `rest_is_raw` to the
command attributes.
2016-01-14 03:11:28 -05:00
Rapptz
18c71ab57c [commands] Fix issue where Bot would raise if not given a description. 2016-01-14 01:25:40 -05:00
Rapptz
b1d8e12609 [commands] Cleanup descriptions being passed. 2016-01-13 22:05:21 -05:00
Rapptz
4edff12f6b Proper exception chaining. 2016-01-13 20:08:55 -05:00
Rapptz
31db6efc7f [commands] Fix handling of nested subcommand help handling. 2016-01-12 01:17:27 -05:00
Rapptz
c29f0ea544 [commands] Fix keyword-only case to actually do conversion. 2016-01-12 01:06:53 -05:00
Rapptz
b335e9ea30 [commands] Support invoking the help command with a cog name. 2016-01-12 00:45:45 -05:00
Rapptz
958d278771 [commands] Initial implementation of help command. 2016-01-11 23:59:11 -05:00