81 Commits

Author SHA1 Message Date
Soheab_
a5a93a85bc
[commands] Document GroupCog.interaction_check 2023-02-28 02:20:00 -05:00
owocado
d26dbf3a7a
Fix a few typos in the docs
Co-authored-by: o-wo <24418520+o-wo@users.noreply.github.com>
2023-02-23 00:47:08 -05:00
AAA3A
742630f144
[commands] Fix error involving hybrid groups in Cog 2023-02-10 19:33:27 -05:00
Rapptz
93ed1646d2 Cleanup some private utilities in app_commands.commands 2023-02-02 00:33:18 -05:00
yaakiyu
20c7e261be
[commands] Fix small "commands" typo in hybrid documentation 2023-01-25 19:41:40 -05:00
Rapptz
3ff88db768 Update pyright to 1.1.289 2023-01-16 21:57:54 -05:00
Leonardo
f4c0a051ab
[commands] Hint hybrid commands in GroupCog's description 2023-01-14 18:55:32 -05:00
Alex Nørgaard
50078087e5
[commands] Fix variance issues in Bot.add_cog with List[Snowflake] 2022-11-21 01:15:18 -05:00
Julien Mauroy
d0625154ed
[commands] Add Cog.has_app_command_error_handler 2022-10-10 16:37:48 -04:00
ster
95b6bd8782
Add coro tag to docstrings that were missing it 2022-10-02 17:52:18 -04:00
Ionite
6981eb69c4
Normalize type formatting in TypeError
Normalize most mixed usages of `__class__`, `__class__!r`, 
`__class__.__name__!r` to the standard form of 
`__class__.__name__`
2022-09-12 15:25:55 -04:00
NextChai
bdda31307b
[commands] Add GroupCog.group_extras to set Group.extras
Co-authored-by: Danny <1695103+Rapptz@users.noreply.github.com>
2022-08-31 01:28:39 -04:00
JohannesIBK
610edaeead [commands] Add option to disable auto_locale_strings in GroupCog 2022-08-14 00:59:33 -04:00
Rapptz
2d586ae805 Add initial support for app command localisation 2022-08-05 22:35:30 -04:00
Soheab
f5b0717661
[commands] Add get_app_commands and walk_app_commands to Cog 2022-08-01 06:22:02 -04:00
StockerMC
1fbcfbd1fb Fix cog_app_command_error for group edge case 2022-07-27 22:27:37 -04:00
Stocker
6d1069e789
Fix cog_app_command_error for groups 2022-07-27 00:29:53 -04:00
Sebastian Law
9c109ae59b
[commands] Unload cog when command registration fails in _inject 2022-07-20 22:31:14 -04:00
Stocker
0546343bcb
[commands] Add cog-level app command error special method 2022-07-17 23:45:19 -04:00
Rapptz
06c43d6772 [commands] Add support for NSFW commands for hybrid commands 2022-05-22 19:31:28 -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
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
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
Rapptz
5536ef1eea Update to pyright 1.1.242 2022-04-30 19:37:01 -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
Rapptz
f15f601779 [commands] Check if an application command starts with bot_ or cog_ 2022-04-05 06:06:35 -04:00
Bryan Forbes
0a8065606a
Update parent reference of Group children 2022-03-30 19:12:39 -04:00
Rapptz
1192d842e1 Fix some type checker errors and remove some type ignores
Caught from an upgraded Pyright
2022-03-16 01:46:58 -04:00
z03h
e5461c73b6
[commands] Check if any base in a Cog is a subclass of Group 2022-03-15 09:50:49 -04:00
Rapptz
5bc085ebab Properly set root parent before copying a command's binding 2022-03-15 03:24:20 -04:00
Stocker
5aa696ccfa
Fix typing issues and improve typing completeness across the library
Co-authored-by: Danny <Rapptz@users.noreply.github.com>
Co-authored-by: Josh <josh.ja.butt@gmail.com>
2022-03-13 23:52:10 -04:00
Josh
a1c618215e
[commads] Change cog/extension load/unload methods to be async 2022-03-13 21:03:45 -04:00
Rapptz
0ef369c0fa [commands] Automatically unload top level app commands in extensions 2022-03-12 09:24:26 -05:00
Rapptz
d68f2db7cb [commands] Always respect guild IDs passed to cog adding and removal
Fixes #7657
2022-03-12 06:58:55 -05:00
Rapptz
9dea6caf20 Ensure cog app commands is a list rather than a dict
There was a remnant of it being a dict in the metaclass.
2022-03-11 21:30:49 -05:00
Rapptz
d210f799ee [commands] Fix cog eject behaviour with application commands
This was using the old attribute I forgot to change.
2022-03-10 05:33:54 -05:00
Rapptz
446bfa78b0 [commands] Allow Cog and app_commands interopability
This changeset allows app commands defined inside Cog to work as
expected. Likewise, by deriving app_commands.Group and Cog you can
make the cog function as a top level command on Discord.
2022-03-09 20:26:54 -05:00
Josh
eaf94e84bc
Fix unbound ParamSpec to use ... over Any 2022-03-06 01:44:48 -05:00
Josh
147948af9b
Use typing.Self throughout library 2022-03-01 07:53:24 -05:00
mniip
cd1dd7d670
[commands] Properly eject listeners with custom names 2022-02-21 21:42:00 -05:00
Rapptz
88b520b5ab Reformat code using black
Segments where readability was hampered were fixed by appropriate
format skipping directives. New code should hopefully be black
compatible. The moment they remove the -S option is probably the moment
I stop using black though.
2022-02-20 08:04:58 -05:00
Josh
f3cb197429
[commands][types] Type hint commands-ext 2021-08-19 19:51:26 -04:00
thetimtoy
8675a18185
[commands] Remove unused copy import in Cog 2021-07-21 02:48:11 -04:00
Josh
3864fb37a0
Fix various reference issues in documentation
Co-Authored-By: Riley Shaw <30989490+ShineyDev@users.noreply.github.com>
2021-05-06 07:51:07 -04:00
Rapptz
6d74514729 [commands] Fix logic in Cog.has_error_handler() 2021-04-05 21:39:22 -04:00
Rapptz
9d39b135f4 Modernize code to use f-strings
This also removes the encoding on the top, since Python 3 does it by
default. It also changes some methods to use `yield from`.
2021-04-04 07:03:53 -04:00
Rapptz
4aee7fed5d [commands] Only remove top level commands on cog load failure 2021-03-28 18:35:59 -04:00