Commit Graph

858 Commits

Author SHA1 Message Date
2fb309a463 [commands] Fix typing error with CheckAnyFailure 2022-08-03 03:11:12 -04:00
07ad6951fb Fix various generics throughout the public interface
Fix CooldownMapping generic typing and ensure other public methods 
have proper generics
2022-08-01 06:24:55 -04:00
f5b0717661 [commands] Add get_app_commands and walk_app_commands to Cog 2022-08-01 06:22:02 -04:00
5527de688a Fix Python 3.10 __or__ not working with transformers
Fixes #8214
2022-07-30 04:48:26 -04:00
11618cd1ba Refactor transformers to use instances instead of classmethods
This should allow them to be easier to use for users without requiring
a lot of metaprogramming hackery if you want to involve state.
2022-07-30 04:40:28 -04:00
c43d302a28 [commands] Only call hybrid after_invoke hooks if the command is called
Fix #8276
2022-07-29 21:39:23 -04:00
1fbcfbd1fb Fix cog_app_command_error for group edge case 2022-07-27 22:27:37 -04:00
6d1069e789 Fix cog_app_command_error for groups 2022-07-27 00:29:53 -04:00
b68568f375 [commands] Fix type annotations to use Union instead of | 2022-07-23 15:11:19 -04:00
311891912e [commands] Change cooldowns to take context instead of message 2022-07-23 07:08:44 -04:00
9c109ae59b [commands] Unload cog when command registration fails in _inject 2022-07-20 22:31:14 -04:00
0546343bcb [commands] Add cog-level app command error special method 2022-07-17 23:45:19 -04:00
faad035fa2 [commands] change Range to raise BadArgument for invalid values 2022-07-16 22:27:47 -04:00
9fe19dcc69 [commands] Add Context.permissions and Context.bot_permissions 2022-07-04 21:48:36 -04:00
fd9c244f48 Validate Range to disallow min > max 2022-07-03 07:37:58 -04:00
b5392ea0f1 [commands] Add support for Range[str, ...] 2022-07-01 19:21:56 -04:00
b7dd97dca9 [commands] Change Command.extras to match typing in app commands 2022-06-28 16:20:15 -04:00
b95db674c0 Fix some typos 2022-06-27 22:34:45 -04:00
d0a52f4276 Fix typo and capitalizations in docs 2022-06-19 23:02:53 -04:00
903e2e64e9 [tasks] Only update the time interval if the body has run once
Fix #8151
2022-06-14 07:41:36 -04:00
53685b9b86 Change stderr prints to use the logging module instead 2022-06-13 01:06:15 -04:00
5d1b63bfee [docs] Add async with documentation for Client
Co-authored-by: Rapptz <1695103+Rapptz@users.noreply.github.com>
2022-06-12 16:06:44 -04:00
1f053e0a32 [commands] Document argument attribute in BadInviteArgument 2022-06-12 15:36:21 -04:00
c9f777c873 Fix type annotations to adhere to latest pyright release 2022-06-12 15:30:45 -04:00
98ca16ef67 Tweak wording for "less than" Range error
Keeping it consistent!
2022-06-07 01:36:21 -04:00
4e7529138c [commands] Properly use Optional's default value on parsing error 2022-06-06 20:18:25 -04:00
36f039a1bf [commands] Fix interaction baton not being set during Context creation 2022-05-30 08:50:19 -04:00
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