Rapptz
6d55b96fa7
[commands] Fix unsupported discord converters in hybrid commands
...
These are things that are supported in regular commands but not in
application commands, such as discord.Colour, discord.Game, or
discord.Emoji.
2022-05-11 20:14:39 -04:00
Rapptz
06e8683d01
[commands] Fix flag_converter attribute not being properly copied
2022-05-11 03:30:20 -04:00
Rapptz
15ceca1e63
[commands] Add support for FlagConverter in hybrid commands
...
This works by unpacking and repacking the flag arguments in a flag.
If an unsupported type annotation is found then it will error at
definition time.
2022-05-11 03:15:57 -04:00
Rapptz
bd3ce597e1
[commands] Fix app command children not being copied in HybridGroup
...
This degenerate case is only triggered inside cogs when using the
app_command property to define commands, such as this:
class X(commands.Cog):
@commands.hybrid_group()
async def foo(self, ctx):
...
@foo.app_command.command()
async def bar(self, interaction):
...
2022-05-06 09:02:49 -04:00
xCirno
6901907b69
[commands] Add seealso directive in functions referencing checks
2022-05-05 06:21:52 -04:00
Rapptz
9793fba338
[commands] Add support for discord.Attachment converters
2022-05-05 01:54:59 -04:00
Rapptz
ccc737eb07
[commands] Add support for with_app_command in hybrid commands
...
This allows the user to make a text-only command without it registering
as an application command
2022-05-05 01:46:19 -04:00
Var
7b65be9d25
[commands] Fix broken None reference
...
Co-authored-by: Danny <Rapptz@users.noreply.github.com>
2022-05-04 23:34:49 -04:00
Rapptz
8699d2139a
Improve generic duck type programming with PartialMessageable
...
This adds jump_url, permissions_for, and created_at. Luckily, most
cases of this type being constructed already have the guild_id at
creation time.
2022-05-03 10:49:52 -04:00
Rapptz
eee65ac39b
[commands] Pass permissions v2 information to HybridGroup
2022-05-02 19:08:25 -04:00
Michael H
d0667d08e3
[commands] Fix typing of check/check_any
...
This changes the type information of check decorators to return a
protocol representing that the decorator leaves the underlying object
unchanged while having a .predicate attribute.
resolves #7949
2022-05-02 18:54:49 -04:00
Rapptz
e8a2eeea06
[commands] Rename Cog.app_command_group to Cog.app_command
...
This allows it to be consistent with hybrid commands
2022-05-01 19:04:53 -04:00
Rapptz
0551214be1
[commands] Properly set default guilds for group to None instead of []
2022-05-01 15:44:18 -04:00
Rapptz
e873b8294a
[commands] Properly set group parent for hybrid commands in cogs
2022-05-01 15:01:30 -04:00
Rapptz
f4c5d37c8f
[commands] Rework Cog + Group inheritance to requite GroupCog
...
This is an attempt to fix the MRO issues present in the current
implementation. The previous implementation of using both Cog and
app_commands.Group in the inheritance chain caused issues with things
such as walk_commands due to it potentially shadowing the app_commands
version of the call.
In this particular case it's better to use composition instead of
inheritance to avoid these bugs entirely. Especially as more things are
added that could conflict with each other.
2022-05-01 14:01:21 -04:00
Varun J
0c613148af
[commands] fix signature when displayed_default is missing
...
This makes it so that passing an empty string (or MISSING) to the
displayed_default of commands.Parameter not show up as [name=] or [name=...]
2022-05-01 02:48:11 -04:00
Rapptz
6ee56fe964
Fix remaining --verifytypes related errors
2022-04-30 19:43:53 -04:00
Rapptz
5536ef1eea
Update to pyright 1.1.242
2022-04-30 19:37:01 -04:00
Mikey
165e14063f
[commands] fix BucketType.default bypassing dynamic_cooldown
2022-04-30 18:46:37 -04:00
Rapptz
5fcd4e411f
[commands] Add support for typing.Annotated
2022-04-22 06:31:02 -04:00
Florian Spieß
0e5c4c391d
[commands] Allow subtracting multiple tokens from cooldown
2022-04-21 12:23:20 -04:00
Rapptz
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
Rapptz
405c445093
[commands] Unwrap transformers when considering them as converters
2022-04-21 03:19:11 -04:00
Rapptz
5357b9319b
[commands] Ignore delete_after for ephemeral interaction sends
2022-04-21 02:07:37 -04:00
Rapptz
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
Rapptz
84e6b9283d
[commands] Fix delete_after not working with interaction Context.send
2022-04-19 22:14:11 -04:00
Rapptz
cd0d6749ea
[commands] Fix Context.reply not working with expired interactions
2022-04-19 22:09:53 -04:00
Rapptz
1d97a35385
[commands] Fix hybrid commands not respecting default annotations
2022-04-19 12:08:22 -04:00
Rapptz
6113f856b6
[commands] Dispatch command events for hybrid commands
2022-04-19 01:40:16 -04:00
Cryptex
7d2e5be3a1
[commands] Allow DynamicCooldownMapping factory to return None
2022-04-19 01:25:40 -04:00
Lilly Rose Berner
15a6a04622
[tasks] Fix Task.failed() only being True while error handler runs
2022-04-18 06:22:53 -04:00
Josh
9fcb3c8871
[commands] Add overload to run_converters
2022-04-17 05:28:16 -04:00
jack1142
f9ead92239
[commands] Change Parameters header to Attributes in HybridGroup
2022-04-15 03:23:56 -04:00
Rapptz
80aa45ed31
[commands] Skip ws before processing arguments in Greedy transformer
2022-04-15 03:21:36 -04:00
Rapptz
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
Rapptz
bc07a02f68
[commands] Fix type hints for hybrid command decorators
2022-04-14 05:14:48 -04:00
Rapptz
ce15df4275
[commands] Allow commands.Range inside typing.Union or typing.Optional
2022-04-13 22:43:11 -04:00
Rapptz
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
Rapptz
e9ff6b4be8
[commands] Fix broken documentation references
2022-04-13 18:49:39 -04:00
Rapptz
5c61f2af48
[commands] Add ForumChannelConverter to the converter mapping
2022-04-13 17:45:54 -04:00
Rapptz
141d9f4c71
[commands] Add ForumChannelConverter converter
2022-04-13 17:44:03 -04:00
Rapptz
7a52aa3764
[commands] Force HybridGroup to always have invoke_without_command
2022-04-13 17:14:21 -04:00
Rapptz
b476757720
[commands] Fix type hints for checks, hooks, and error handlers
2022-04-13 03:07:58 -04:00
Rapptz
737ff5beaf
Update Pyright to 1.1.237
2022-04-13 02:30:00 -04:00
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