Commit Graph
600 Commits
Author SHA1 Message Date
Rapptz d9cd4a3561 [commands] Implement Command.__call__ 2020-01-21 04:27:20 -05:00
Rapptz 02397306b2 Drop superfluous zero in version related changes in the documentation 2020-01-21 03:47:56 -05:00
Rapptz 08c90668cd [commands] Be more clear in the default error for MaxConcurrencyReached 2020-01-21 03:34:18 -05:00
Rapptz 1a7b838d2a [commands] Refactor BucketType to not repeat in other places in code 2020-01-21 03:30:56 -05:00
Rapptz bf84c63396 [commands] Add max_concurrency decorator 2020-01-21 03:26:41 -05:00
Hugo WoesthuisandRapptz ee6f4e85d6 [commands] Allow @ prefixed usernames in DM contexts for UserConverter
Previously the argument '@user#0000' return None.
To fix this, as this is a common user error, an extra check was added
 to remove the first character from the argument if this is an '@'.
 Discord names may not contain an '@' anyways.
2020-01-20 07:14:27 -05:00
Rapptz 6071607176 Bump copyright year to 2020
Closes #2510
2020-01-19 20:03:00 -05:00
Rapptz 9f2018f439 [commands] Case insensitivity uses casefold instead of lower
There seems to be very little performance regression in doing so (+5ns)
so might as well go for the more correct behaviour.
2020-01-19 19:49:50 -05:00
Rapptz a2b241446e [commands] Document BucketType separately 2020-01-18 20:04:00 -05:00
Rapptz 97d1c970bf [commands] Context.send_help properly sends to on_help_command_error 2020-01-18 19:43:20 -05:00
apple502jandRapptz 7af8b313e5 [commands] Add missing async in documentation 2020-01-14 23:46:46 -05:00
Rapptz e5870903f5 [commands] Force the predicate attribute in checks to be a coroutine 2020-01-14 20:13:33 -05:00
Michael HandRapptz 6cdda4a320 Patch clean_prefix for new text editor
The new editor seems to force mentions to have ! even without a nick.
2020-01-14 19:39:34 -05:00
Rapptz ae3dac0d59 [commands] Add check_any check to OR together various checks 2020-01-06 22:03:56 -05:00
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
StarrFoxandRapptz e79ccf3f4c [commands] check if prefix is None in .pages 2019-12-17 00:12:42 -05:00
XuaandRapptz 7972570eb6 [commands] Add guild-based permission checks 2019-12-17 00:11:39 -05:00
NellukandRapptz dc86670d7f Fix typo in help.py docs
Changed "intend" to "indent"
2019-11-26 05:16:53 -05:00
Riley ShawandRapptz 7cde9febcf [commands] Add Command/Group.add/remove_check 2019-11-15 04:29:52 -05:00
romangraefandRapptz 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 BandRapptz 07840db053 Document Command.cog property 2019-10-17 05:56:01 -04:00
Ben MintzandRapptz 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
BluePhoenixGameandDanny 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 MintzandRapptz 042a234eac [commands] update sys.modules in load_extension again
6f71552c50 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
ed588andRapptz 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) CowleyandRapptz 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 MintzandRapptz 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
fourjrandRapptz 3961e7ef6d Support team members data in application info 2019-06-29 19:14:24 -04:00
HarmonandRapptz 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
NCPlayzandRapptz 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 MintzandRapptz 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