67 Commits

Author SHA1 Message Date
Rapptz
5c5e7ae1d6 [commands] Add is_owner check and Bot.is_owner. 2017-03-27 06:55:21 -04:00
Rapptz
54fdafb792 [commands] Add BotBase.get_cog_commands to get all a cog's commands.
Self-explanatory. This should help create help commands for a cog
more easily.
2017-03-21 00:46:12 -04:00
Rapptz
fe588a4d52 [commands] Change GroupMixin.commands to all_commands
This is a breaking change as GroupMixin.commands now returns a set
of unique Command objects.
2017-03-21 00:46:12 -04:00
Rapptz
9cb89f019e [commands] Register cog listeners with the name of the attribute. 2017-02-22 20:11:01 -05:00
Rapptz
47ef657fbd Implement async checks. Fixes #380. 2017-02-12 12:13:23 -05:00
Rapptz
1c49374210 [commands] Implement before and after invoke command hooks.
Fixes #464.
2017-01-27 18:53:21 -05:00
Rapptz
8fa50a8f3e [commands] Add Context.command_failed attribute. 2017-01-27 17:14:22 -05:00
Rapptz
0e1bd1647e [commands] Rename __check to __global_check for cogs. 2017-01-26 05:31:11 -05:00
Rapptz
4016154529 [commands] Allow customising the Context class in get_context. 2017-01-26 05:05:15 -05:00
Rapptz
234fd5180f Optimise attribute access when dispatching. 2017-01-25 05:31:53 -05:00
Rapptz
ff9f5749e1 Update copyright year to 2017. 2017-01-20 23:19:19 -05:00
Rapptz
ea72d5e63d [commands] Guarantee that local error handler is called before generic. 2017-01-15 21:55:50 -05:00
Rapptz
ce9d5b4f4a [commands] Split process_commands into lower level bits. 2017-01-14 19:17:08 -05:00
Rapptz
695b62ccd3 [commands] Make Command a descriptor for #426. 2017-01-13 20:34:00 -05:00
Rapptz
d22d8cc430 [commands] Add AutoShardedBot counterpart to AutoShardedClient. 2017-01-08 04:50:59 -05:00
Rapptz
496f5d0472 [commands] Fix help command from not working with recent changes. 2017-01-03 09:52:12 -05:00
Rapptz
20ddc9f14f [commands] Remove send_ utility functions. 2017-01-03 09:52:04 -05:00
Rapptz
d1d54a468a Rename Server to Guild everywhere. 2017-01-03 09:51:54 -05:00
Rapptz
20251c54a7 [commands] Bot skip check now works with the new __eq__ changes. 2017-01-03 09:51:51 -05:00
PapyrusThePlant
31cd9ad37a [commands] Bugfix on the teardown function call. 2017-01-01 01:49:10 -05:00
Rapptz
bed2e90e82 Properly propagate loop. Fixes #420. 2016-12-21 00:06:19 -05:00
Rapptz
00e30f3106 [commands] Shield against dictionary resize in Bot.close 2016-12-17 21:18:48 -05:00
Rapptz
fc1a7183a0 [commands] Unload all cogs when gracefully exiting bot. 2016-12-17 14:47:29 -05:00
Rapptz
6d88024f0f [commands] Add special extension function 'teardown' for clean-up.
This is to support people who want to clean up some external resource
that the extension is maintaining outside of a cog, where __unload
should be used instead.

The callable is the antipode of 'setup' and takes the same sole
parameter, the bot, after all commands, events, and cogs have been
unloaded.

Fixes #405.
2016-12-17 14:15:11 -05:00
Rapptz
bafaf72c89 [commands] Unload all extensions when gracefully closing bot. 2016-12-17 14:15:10 -05:00
Rapptz
967d43c35b [commands] Allow coroutine functions in Bot.command_prefix 2016-09-17 15:01:56 -04:00
Rapptz
1e9251cfef [commands] Delete module when it does not have a setup function. 2016-08-10 15:11:45 -04:00
Rapptz
cd87f247d3 [commands] Make Bot.check decorator an actual decorator. 2016-07-08 04:29:11 -04:00
PapyrusThePlant
1aaeeff02b [commands] Added missing parenthesis in examples 2016-07-08 04:29:05 -04:00
Rapptz
adbf2c720f [commands] Add the concept of global checks.
Global checks are checks that are executed before regular per-command
checks except done to every command that the bot has registered. This
allows you to have checks that apply to every command without having to
override `on_message` or appending the check to every single command.
2016-06-19 22:15:11 -04:00
Rapptz
6f173cc095 [commands] Add delete_after keyword argument to utility functions.
This includes things like `Bot.say`, `Bot.upload`, `Bot.whisper`,
and `Bot.reply`.
2016-06-19 19:43:49 -04:00
Rapptz
4dbac9423d [commands] Only show CommandNotFound on non-empty commands. 2016-06-14 01:35:35 -04:00
Rapptz
bde266bbb9 [commands] Fix @everyone elevation in the default help command. 2016-06-10 21:31:11 -04:00
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
37dfe38af5 [commands] Fix bug where Context.command would not update. 2016-06-04 22:29:50 -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
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
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
c015e492d7 [commands] Don't yield from inside bot utility functions. 2016-03-31 20:09:20 -04: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
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
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