729 Commits

Author SHA1 Message Date
Rapptz
242d3f7ab7 [commands] Add Bot.hybrid_group and Bot.hybrid_command decorators 2022-04-12 21:17:00 -04:00
Rapptz
1931b0eb75 [commands] Ensure hybrid app command receives copied wrapper command 2022-04-12 20:15:11 -04:00
Rapptz
393fdde037 [commands] Add support for Greedy for hybrid commands 2022-04-12 20:15:11 -04:00
Rapptz
1004cf2059 [commands] Unconditionally replace default if it's set
Handles degenerate `x: int = commands.param(default=10)` case
2022-04-12 20:15:11 -04:00
Rapptz
70d2522e7e [commands] Unwrap CommandInvokeError if the cause is CommandError 2022-04-12 20:15:11 -04:00
Rapptz
65418414ea [commands] Refactor parameter replacement to be less brittle
If a parameter works as-is as a transformer or a built-in then it
will always be taken rather. This way, the custom behaviour is done
as a fallback in case it doesn't work natively with app commands.

This also allows things that are hybrid transformers and converters
to work transparently.
2022-04-12 20:15:11 -04:00
Rapptz
896932faf1 [commands] Add Range converter
This allows hybrid commands to also have a range annotation
2022-04-12 20:15:11 -04:00
Rapptz
3c4b22b623 [commands] Fix transformers no longer working as annotation 2022-04-12 20:15:10 -04:00
Rapptz
9d05f55ddb [commands] Fix Optional handling when the inner type is a converter 2022-04-12 20:15:10 -04:00
Rapptz
f072edfdfc [commands] Properly support commands.param in hybrid commands 2022-04-12 20:15:10 -04:00
Rapptz
fa3a4c109b [commands] Fix Context.reply not working for hybrid commands 2022-04-12 20:15:10 -04:00
Rapptz
d61561f2e8 [commands] Add support for autocomplete for hybrid commands 2022-04-12 20:15:10 -04:00
Rapptz
52fcaed79b [commands] Reassign app_command attribute on copy
Prior to this change it would re-create the HybridAppCommand on copy
which had the consequence of clearing parameter related changes.
2022-04-12 20:15:10 -04:00
Rapptz
1232a1d2fd [commands] Properly call after_hooks in hybrid commands 2022-04-12 20:15:10 -04:00
Rapptz
c1892131a6 [commands] Fix Context docstring missing Interaction ref 2022-04-12 20:15:10 -04:00
Rapptz
840eb577d4 [commands] Add initial implementation of hybrid commands
Hybrid commands allow a regular command to also double as a slash
command, assuming it meets the subset required to function.
2022-04-12 20:15:10 -04:00
z03h
aee657bca5
[commands] Add converter kwarg to flag 2022-04-09 02:10:32 -04:00
Willy
b8ae05f59f
[commands] Fix missing ctx in example 2022-04-06 19:24:17 -04:00
Rapptz
b32b78de45 [commands] Fix missing or inferred type hints in parameters.py 2022-04-05 22:47:21 -04:00
Rapptz
76cc2c2272 Require passing intents to Client and its subclasses 2022-04-05 22:32:14 -04:00
Rapptz
629f36e7d7 [commands] Add fallback behaviour to the default parameter instances
This allows users to explicitly override the default annotation for
CurrentAuthor and CurrentChannel since they're wider than what most
users would expect
2022-04-05 06:40:31 -04:00
Rapptz
f15f601779 [commands] Check if an application command starts with bot_ or cog_ 2022-04-05 06:06:35 -04:00
Rapptz
b823a4bab1 [commands] Only update annotation if an explicit override is given 2022-04-05 06:02:28 -04:00
Rapptz
dbcdf69eb1 [commands] Raise appropriate exception for no guild found 2022-04-04 21:49:11 -04:00
Rapptz
8b50ac8a31 [commands] Don't set a converter for the defaults provided 2022-04-04 21:47:03 -04:00
Rapptz
66155faf00 [commands] Fix documentation not being properly formatted 2022-04-04 18:10:43 -04:00
James Hilton-Balfe
55c5be78cf
[commands] Implement commands.parameter 2022-04-04 18:01:21 -04:00
Rapptz
994660faad [commands] Fix unknown generic type in tree_cls 2022-04-02 05:53:33 -04:00
Kellen
0f18d93e47
Remove unused imports 2022-04-02 04:58:39 -04:00
jack1142
3d914e08e0
[commands] Add Context.current_argument 2022-04-01 16:24:14 -04:00
Rapptz
29668c51ae [commands] Revert back to older help command implementation
The newer implementation did not play nicely with spawned tasks and
accessing HelpCommand.context, which was a frequent pain point when
writing paginated help commands.
2022-03-31 02:46:42 -04:00
Bryan Forbes
06c257760b
Update types to use Awaitable where possible 2022-03-30 22:00:24 -04:00
Jonah Lawrence
caac97c0d1
Allow empty iterables as a command_prefix 2022-03-30 20:07:44 -04:00
Bryan Forbes
0a8065606a
Update parent reference of Group children 2022-03-30 19:12:39 -04:00
z03h
55695dab3c
[commands] Check for None max_concurrency 2022-03-29 04:49:37 -04:00
Kellen
4fd2d5fdfd
Remove redundant imports and variables 2022-03-29 02:50:34 -04:00
ImNimboss
f5acd9e8b6
[commands] Add Command.cooldown property 2022-03-29 02:50:04 -04:00
Rapptz
9f83eb6032 Add application command cooldown decorators
Fix #7790
2022-03-29 00:46:42 -04:00
I. Ahmad
ae1979d17a
[commands] Add note for command tree in Bot's docstring 2022-03-28 09:19:27 -04:00
Rapptz
def035bf9a Remove StoreChannel and any references to it 2022-03-28 00:09:19 -04:00
jack1142
5ffa3e85de
Update comments after # type: ignore to be compatible with PEP 484 2022-03-27 22:26:34 -04:00
Josh
2d1cbacc58
[commands] Add tree_cls to Bot constructor 2022-03-24 22:32:31 -04:00
Bryan Forbes
062f4d6f87
Change some methods to use positional-only marker
Co-authored-by: Danny <Rapptz@users.noreply.github.com>
2022-03-22 18:52:25 -04:00
Stocker
eca4727593
[commands] Add missing and fix existing type annotations 2022-03-22 06:04:46 -04:00
Josh
46b3e036e2
[commands] Fix help error/invoke hooks not running 2022-03-22 06:02:52 -04:00
jack1142
6dc314628e
Make guild and guilds args in Bot.remove_cog() keyword-only 2022-03-20 19:01:37 -04:00
Josh
1b70fad5ec
[commands] Fix exceptions in HelpCommand 2022-03-19 13:14:17 -04:00
Josh
fafc5b13f6
[commands] Rework help command to avoid a deepcopy on invoke 2022-03-19 06:34:19 -04:00
z03h
5d6905a1bc
Update clean_content/channel_mentions for threads 2022-03-19 04:46:55 -04:00
Rapptz
02b79eb219 [commands] Change BotT to be covariant 2022-03-18 01:13:50 -04:00