Commit Graph

714 Commits

Author SHA1 Message Date
3dddddc8f9 [commands] Change Context.typing to defer for interaction contexts 2022-05-22 21:49:27 -04:00
06c43d6772 [commands] Add support for NSFW commands for hybrid commands 2022-05-22 19:31:28 -04:00
a47396b21e [commands] Change guild_only check to set guild_only in hybrid commands 2022-05-22 18:48:01 -04:00
38ba3b8d23 [commands] fix case_insensitive bug in parse_flags
Co-authored-by: Danny <Rapptz@users.noreply.github.com>
2022-05-17 16:41:02 -04:00
2be65e5874 [commands] Fix errors when DynamicCooldown returns None 2022-05-17 03:37:31 -04:00
cdf787186e Add VoiceChannel and Thread to isinstance checks 2022-05-16 15:32:13 -04:00
9450a8e972 [commands] Change FlagConverter to always raise BadFlagArgument 2022-05-16 15:31:18 -04:00
6e2fcd4762 [commands] Assign current parameter and argument in hybrid commands 2022-05-12 06:36:19 -04:00
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
06e8683d01 [commands] Fix flag_converter attribute not being properly copied 2022-05-11 03:30:20 -04:00
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
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
6901907b69 [commands] Add seealso directive in functions referencing checks 2022-05-05 06:21:52 -04:00
9793fba338 [commands] Add support for discord.Attachment converters 2022-05-05 01:54:59 -04:00
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
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
eee65ac39b [commands] Pass permissions v2 information to HybridGroup 2022-05-02 19:08:25 -04:00
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
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
0551214be1 [commands] Properly set default guilds for group to None instead of [] 2022-05-01 15:44:18 -04:00
e873b8294a [commands] Properly set group parent for hybrid commands in cogs 2022-05-01 15:01:30 -04:00
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
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
6ee56fe964 Fix remaining --verifytypes related errors 2022-04-30 19:43:53 -04:00
5536ef1eea Update to pyright 1.1.242 2022-04-30 19:37:01 -04:00
165e14063f [commands] fix BucketType.default bypassing dynamic_cooldown 2022-04-30 18:46:37 -04:00
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
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