386 Commits

Author SHA1 Message Date
Rapptz
51546dbdb6 [commands] Document the changed Command.can_run behaviour 2020-01-06 04:02:56 -05:00
Rapptz
527b3485dc [commands] Make Command.can_run process disabled commands 2020-01-06 00:30:04 -05:00
Rapptz
d9a8ae9c78 [commands] Add predicate attribute to checks to get inner function 2019-12-18 01:20:50 -05:00
Rapptz
1179df7e29 [commands] Make Greedy ignore parsing errors. 2019-12-17 00:27:56 -05:00
StarrFox
e79ccf3f4c [commands] check if prefix is None in .pages 2019-12-17 00:12:42 -05:00
Xua
7972570eb6 [commands] Add guild-based permission checks 2019-12-17 00:11:39 -05:00
Nelluk
dc86670d7f Fix typo in help.py docs
Changed "intend" to "indent"
2019-11-26 05:16:53 -05:00
Riley Shaw
7cde9febcf [commands] Add Command/Group.add/remove_check 2019-11-15 04:29:52 -05:00
romangraef
bc642ded6e [commands] Allow converters from custom discord.ext extensions
Originally the converting of an argument with type in the discord.*
package would try to use the predefined converters, even if there were
none present. This is fixed by supplying a default argument to getattr

Fixes #2369
2019-10-20 05:19:03 -04:00
Josh B
07840db053 Document Command.cog property 2019-10-17 05:56:01 -04:00
Ben Mintz
1dddb66a1e [commands] default Bot.owner_ids to a set
This appears to be a typo, as everywhere else, owner_ids is set to a set.
2019-09-10 21:10:59 -04:00
Rapptz
ceaba01776 Add version information from missing PRs. 2019-08-11 19:04:39 -04:00
BluePhoenixGame
c7d3ebb400 [commands] Add role cooldown bucket 2019-08-11 18:44:16 -04:00
Rapptz
dd12fbf73d [commands] Properly load the original module when reloading fails.
Fix #2291
2019-07-27 22:37:55 -04:00
Benjamin Mintz
042a234eac [commands] update sys.modules in load_extension again
6f71552c508c61d9b6bf024fc259063ad056b7c4 introduced a regression: loading a module that is not in a package
does not add it to sys.modules. Updating sys.modules is required after all.
2019-07-18 18:06:43 -04:00
ed588
c6133ef881 [commands] Bot.is_owner should be marked as coroutine 2019-07-18 18:06:27 -04:00
Rapptz
2e6882bd8c [commands] Fall back to using Message.mentions in converters
Useful if there's no cache.
2019-07-10 04:51:27 -04:00
Rapptz
6f71552c50 [commands] Don't update sys.modules with a stale reference. 2019-07-07 20:17:44 -04:00
Rapptz
d4b13bd32b [commands] Fix up Paginator documentation.
These aren't optional.
2019-06-29 20:29:13 -04:00
Matt (IPv4) Cowley
391ff7a486 [commands] Calculate suffix length at each add_line 2019-06-29 20:28:32 -04:00
Rapptz
68342db04d [commands] Properly raise the correct exception for owner_ids
Also some minor nits with documentation.
2019-06-29 19:26:45 -04:00
Benjamin Mintz
0a21591d0c [commands] Don't raise ExtensionNotFound for ImportErrors in modules
Now loading an extension that _contains_ a failed import will fail
with ExtensionFailed, rather than ExtensionNotFound.
2019-06-29 19:15:05 -04:00
fourjr
3961e7ef6d Support team members data in application info 2019-06-29 19:14:24 -04:00
Harmon
94c0cb0d5c [commands] Add missing word in HelpCommand documentation 2019-06-20 22:52:47 -04:00
Rapptz
671a19a24a [commands] Ensure cooldowns are properly copied. 2019-06-12 23:40:43 -04:00
Rapptz
af4e3ad79b Some documentation touch-ups and missing stuff in the changelog. 2019-06-09 01:24:41 -04:00
Rapptz
991140eebe Replace Enum with an internal one for significant speed improvements.
This has been a massive pain point for me personally due to the poor
design of the Enum class leading to the common use cases used in the
library being significantly slow. Since this Enum is not public facing
in terms of *creation*, I can only implement the APIs that are used
when *accessing* them.

This Enum is a drop-in replacement to the pre-existing enum.Enum class
except it comes with significant speed-ups. Since this is a lot to go
over, I will let the numbers speak for themselves:

In [4]: %timeit enums.try_enum(enums.Status, 'offline')
263 ns ± 34.3 ns per loop (7 runs, 1000000 loops each)
In [5]: %timeit NeoStatus.try_value('offline')
134 ns ± 0.859 ns per loop (7 runs, 10000000 loops each)

In [6]: %timeit enums.Status.offline
116 ns ± 0.378 ns per loop (7 runs, 10000000 loops each)
In [7]: %timeit NeoStatus.offline
31.6 ns ± 0.327 ns per loop (7 runs, 10000000 loops each)

In [8]: %timeit enums.Status.offline.value
382 ns ± 15.2 ns per loop (7 runs, 1000000 loops each)
In [9]: %timeit NeoStatus.offline.value
65.5 ns ± 0.953 ns per loop (7 runs, 10000000 loops each)

In [10]: %timeit str(enums.Status.offline)
630 ns ± 14.8 ns per loop (7 runs, 1000000 loops each)
In [11]: %timeit str(NeoStatus.offline)
253 ns ± 3.53 ns per loop (7 runs, 1000000 loops each)

In [12]: %timeit enums.Status('offline')
697 ns ± 8.42 ns per loop (7 runs, 1000000 loops each)
In [13]: %timeit NeoStatus('offline')
182 ns ± 1.83 ns per loop (7 runs, 10000000 loops each)
2019-06-09 00:06:34 -04:00
NCPlayz
3c9bcc2851 Improve documentation 2019-06-07 19:27:46 -04:00
Dante Dam
92731bbf5f [commands] Fixed extra "only" in dm_only docs 2019-05-19 20:04:42 -07:00
Rapptz
82b54933e2 Add asyncio.Task subclass for better __repr__ for events. 2019-05-19 19:17:29 -04:00
Dante Dam
1fac7a7e71 [commands] Add missing backtick for is_nsfw docs 2019-05-17 15:25:45 -07:00
Rapptz
f74d73327b [commands] Explicitly assign invoked_subcommand to None before invoking
This should fix instances of it not working as expected in nested
groups.
2019-05-11 18:17:57 -04:00
Benjamin Mintz
0a0c43321b [commands] MinimalHelpCommand: add cog description 2019-05-09 06:11:21 -04:00
Rapptz
bdea50e1db [commands] Better note for Command.invoke 2019-05-05 03:15:38 -04:00
Rapptz
40cac30da1 [commands] Fix MessageConverter not inheriting from Converter
Closes #2126
2019-04-29 23:37:27 -04:00
Rapptz
05d4f7f962 [commands] Fix Context.send_help to work with the copied HelpCommand 2019-04-29 00:08:08 -04:00
Rapptz
ad5beed8dd [commands] Copy HelpCommand instances to prevent race conditions.
Fixes #2123

Slight breaking change if someone had an expectation that no copies
were made behind the scene (which is sensible), however writing code
that relies on this expectation is probably buggy anyway.
2019-04-29 00:05:46 -04:00
Rapptz
6dcd68b8d7 [commands] Allow passing current to more cooldown mapping methods.
Also adds a CooldownMapping.update_rate_limit helper function.
2019-04-24 23:26:33 -04:00
Rapptz
5a7b5cd14b [commands] Allow passing of a message to NoPrivateMessage again.
Prevents an accidental breaking change.
2019-04-20 17:28:44 -04:00
Rapptz
188bd4e708 [commands] DM channels are NSFW in commands.is_nsfw check. 2019-04-20 17:27:04 -04:00
Rapptz
919dbcafb3 Consistent use of __all__ to prevent merge conflicts. 2019-04-20 17:20:58 -04:00
Rapptz
c6410ea9ab [commands] Clean docstrings in Command.parents and Command.root_parent 2019-04-20 17:01:01 -04:00
Rapptz
6620fcc038 [commands] Consistently mention inheritance of exceptions. 2019-04-20 16:59:54 -04:00
Vexs
bbf9a42f87 [commands] Add Command.parents
Make command.root_parent use new command.parents property
2019-04-20 16:59:53 -04:00
Vexs
bb3ebc0ebc [commands] Add custom exception classes for built-in checks
Added:
* MissingRole
* BotMissingRole
* MissingAnyRole
* BotMissingAnyRole
2019-04-20 16:45:37 -04:00
Rapptz
4ca934eb22 [commands] Missing an extra ] in the documented return type. 2019-04-19 18:29:12 -04:00
Vexs
dd84773f45 [commands] Allow passing cls to the commands.group decorator 2019-04-19 18:29:11 -04:00
sirtezza451
dbe946a767 [commands] Update default on_command_error 2019-04-18 07:58:28 -04:00
Rapptz
296d4bf580 [commands] Add new MessageConverter to commands prose page. 2019-04-17 22:41:58 -04:00
retke
440db2a568 [commands] Add MessageConverter to fetch messages by URL or ID. 2019-04-17 20:47:21 -04:00