Commit Graph

754 Commits

Author SHA1 Message Date
5fcd4e411f [commands] Add support for typing.Annotated 2022-04-22 06:31:02 -04:00
0e5c4c391d [commands] Allow subtracting multiple tokens from cooldown 2022-04-21 12:23:20 -04:00
832d2c0542 [commands] Fix certain annotations being allowed in hybrid commands
Union types were not properly constrained and callable types were
too eagerly being converted
2022-04-21 04:13:32 -04:00
405c445093 [commands] Unwrap transformers when considering them as converters 2022-04-21 03:19:11 -04:00
5357b9319b [commands] Ignore delete_after for ephemeral interaction sends 2022-04-21 02:07:37 -04:00
de941ababe Add Colour.from_str factory method
This moves the command extension parsing code over to the main library
since it can be potentially useful for others.
2022-04-20 06:49:28 -04:00
84e6b9283d [commands] Fix delete_after not working with interaction Context.send 2022-04-19 22:14:11 -04:00
cd0d6749ea [commands] Fix Context.reply not working with expired interactions 2022-04-19 22:09:53 -04:00
1d97a35385 [commands] Fix hybrid commands not respecting default annotations 2022-04-19 12:08:22 -04:00
6113f856b6 [commands] Dispatch command events for hybrid commands 2022-04-19 01:40:16 -04:00
7d2e5be3a1 [commands] Allow DynamicCooldownMapping factory to return None 2022-04-19 01:25:40 -04:00
15a6a04622 [tasks] Fix Task.failed() only being True while error handler runs 2022-04-18 06:22:53 -04:00
9fcb3c8871 [commands] Add overload to run_converters 2022-04-17 05:28:16 -04:00
f9ead92239 [commands] Change Parameters header to Attributes in HybridGroup 2022-04-15 03:23:56 -04:00
80aa45ed31 [commands] Skip ws before processing arguments in Greedy transformer 2022-04-15 03:21:36 -04:00
4fb1309e2a [commands] Mock interaction context prefix
Most user-level code probably expects the prefix to be valid and not
None, so mocking it to ensure it's at least a string is probably for
the best.
2022-04-14 19:12:16 -04:00
bc07a02f68 [commands] Fix type hints for hybrid command decorators 2022-04-14 05:14:48 -04:00
ce15df4275 [commands] Allow commands.Range inside typing.Union or typing.Optional 2022-04-13 22:43:11 -04:00
8a1800bd12 [commands] Add support for setting a fallback slash subcommand
This allows the group callback to be invoked as a slash subcommand
2022-04-13 20:30:11 -04:00
e9ff6b4be8 [commands] Fix broken documentation references 2022-04-13 18:49:39 -04:00
5c61f2af48 [commands] Add ForumChannelConverter to the converter mapping 2022-04-13 17:45:54 -04:00
141d9f4c71 [commands] Add ForumChannelConverter converter 2022-04-13 17:44:03 -04:00
7a52aa3764 [commands] Force HybridGroup to always have invoke_without_command 2022-04-13 17:14:21 -04:00
b476757720 [commands] Fix type hints for checks, hooks, and error handlers 2022-04-13 03:07:58 -04:00
737ff5beaf Update Pyright to 1.1.237 2022-04-13 02:30:00 -04:00
242d3f7ab7 [commands] Add Bot.hybrid_group and Bot.hybrid_command decorators 2022-04-12 21:17:00 -04:00
1931b0eb75 [commands] Ensure hybrid app command receives copied wrapper command 2022-04-12 20:15:11 -04:00
393fdde037 [commands] Add support for Greedy for hybrid commands 2022-04-12 20:15:11 -04:00
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
70d2522e7e [commands] Unwrap CommandInvokeError if the cause is CommandError 2022-04-12 20:15:11 -04:00
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
896932faf1 [commands] Add Range converter
This allows hybrid commands to also have a range annotation
2022-04-12 20:15:11 -04:00
3c4b22b623 [commands] Fix transformers no longer working as annotation 2022-04-12 20:15:10 -04:00
9d05f55ddb [commands] Fix Optional handling when the inner type is a converter 2022-04-12 20:15:10 -04:00
f072edfdfc [commands] Properly support commands.param in hybrid commands 2022-04-12 20:15:10 -04:00
fa3a4c109b [commands] Fix Context.reply not working for hybrid commands 2022-04-12 20:15:10 -04:00
d61561f2e8 [commands] Add support for autocomplete for hybrid commands 2022-04-12 20:15:10 -04:00
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
1232a1d2fd [commands] Properly call after_hooks in hybrid commands 2022-04-12 20:15:10 -04:00
c1892131a6 [commands] Fix Context docstring missing Interaction ref 2022-04-12 20:15:10 -04:00
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
aee657bca5 [commands] Add converter kwarg to flag 2022-04-09 02:10:32 -04:00
b8ae05f59f [commands] Fix missing ctx in example 2022-04-06 19:24:17 -04:00
b32b78de45 [commands] Fix missing or inferred type hints in parameters.py 2022-04-05 22:47:21 -04:00
76cc2c2272 Require passing intents to Client and its subclasses 2022-04-05 22:32:14 -04:00
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
f15f601779 [commands] Check if an application command starts with bot_ or cog_ 2022-04-05 06:06:35 -04:00
b823a4bab1 [commands] Only update annotation if an explicit override is given 2022-04-05 06:02:28 -04:00
dbcdf69eb1 [commands] Raise appropriate exception for no guild found 2022-04-04 21:49:11 -04:00
8b50ac8a31 [commands] Don't set a converter for the defaults provided 2022-04-04 21:47:03 -04:00