67 Commits

Author SHA1 Message Date
Bryan Forbes
7fca030107
Add Group class arguments for permissions v2 2022-04-28 20:47:54 -04:00
zephyrkul
10af1ea255
Document behavior for empty default permissions 2022-04-28 12:54:55 -04:00
Rapptz
a14b43f2fd Fix documentation links being broken 2022-04-28 00:53:51 -04:00
Rapptz
3b3d4d3880 Add support for setting and receiving permissions v2
Closes #7592

This does not include audit log changes or the remaining endpoints.
That will come in a different commit.
2022-04-28 00:23:36 -04:00
Harmon
1bfe6b2bb1
Fix support for guilds decorator with context menu commands 2022-04-15 05:00:24 -04:00
Rapptz
9ff90d7863 Copy internal attributes for command decorator state
This allows for copies to not clear the state the decorators had
set prior.
2022-04-14 17:45:27 -04:00
Rapptz
4951231a7c Remove command parameter from Group.on_error callback
Similar to the CommandTree.on_error removal, this one can be retrieved
using Interaction.command
2022-04-13 22:45:06 -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
Jonah Lawrence
7bf1a7483a
Parse command descriptions from docstrings
Co-authored-by: Danny <Rapptz@users.noreply.github.com>
2022-04-12 16:31:17 -04:00
Rapptz
f07885973f Provide callback name where applicable in validation
Fix #7850
2022-04-06 08:57:04 -04:00
Vish M
7770972041
A small grammar fix app_commands.context_menu
This just makes it so it adheres with the rule that `an` goes 
before a word that begins with a vowel.
2022-04-05 11:01:55 -04:00
Josh
151948a09a
Add autocomplete method to Transformers
Co-authored-by: Danny <Rapptz@users.noreply.github.com>
2022-04-03 02:32:16 -04:00
Rapptz
25ad5b675c Ensure explicitly set parents on nested groups are respected
This had a multiple layer bug that needed to be squashed. The first
issue was that setting `parent=...` inside a `Group` wouldn't actually
add the `Group` into the `parent` children mapping. This meant that
it didn't actually end up copying the children when it came time to
within e.g. a Cog.

The second issue was that even if it was added into the children
listing, it wouldn't properly set the attribute.

This commit fixes both of these issues.

Fix #7818
2022-04-01 09:13:27 -04:00
Rapptz
c671308211 Validate app command parameter renames 2022-04-01 07:02:37 -04:00
Rapptz
705c79df59 Remove second mapping used for parameter rename lookup
Just keying into param.display_name should be enough
2022-03-31 08:58:53 -04:00
Rapptz
dfc92c223c Fix application commands not always sending the proper parameter name 2022-03-31 08:55:20 -04:00
Rapptz
170ab7b2bb Improve error when an invalid slash command name is given 2022-03-31 04:12:09 -04:00
Rapptz
b1fb5ed3d7 Fix autocomplete not working with renamed parameters
Fix #7810
2022-03-30 19:46:27 -04:00
Bryan Forbes
0a8065606a
Update parent reference of Group children 2022-03-30 19:12:39 -04:00
Ryu juheon
9012c424bf
Replace - with # in # type: ignore comments in rename decorator 2022-03-28 09:28:01 -04:00
Nadir Chowdhury
c6d0c82d66
Implement app_commands.rename decorator 2022-03-28 05:52:33 -04:00
Rapptz
0a7eb6b021 Only verify if context menus pass a length check
According to Discord this is the check that is actually done
2022-03-27 23:32:36 -04:00
jack1142
5ffa3e85de
Update comments after # type: ignore to be compatible with PEP 484 2022-03-27 22:26:34 -04:00
Puncher
0bcb0d0e3c
Allow context menus have ? and ! in their name 2022-03-26 23:41:05 -04:00
Rapptz
985f5732c0 Refactor ContextMenu constructor to allow app command type inferring 2022-03-25 09:11:11 -04:00
Rapptz
84c38f1f22 Ignore errors if it's already handled in app commands 2022-03-21 04:07:05 -04:00
Rapptz
f7c664e3e2 Add error handler support for context menus 2022-03-21 03:56:28 -04:00
Rapptz
2876622f84 Fix typo in app command check documentation 2022-03-19 15:48:00 -04:00
Rapptz
bea6b815e2 Add support for app command checks
This does not include any built-in checks due to design considerations.
2022-03-19 01:24:53 -04:00
Rapptz
98a31cf285 Change autocomplete callbacks to only take two parameters
The old namespace parameter can be retrieved using the
Interaction.namespace property instead, which leads to somewhat cleaner
code.
2022-03-17 10:13:09 -04:00
Rapptz
202b993da3 Add Interaction.command and Interaction.namespace attributes 2022-03-17 09:45:21 -04:00
Rapptz
3c6daff473 Change default ellipsis descriptions to use U+2026 2022-03-17 07:37:33 -04:00
Rapptz
5b8bcaff73 Validate and bind parent in Group.add_command 2022-03-16 07:32:01 -04:00
Rapptz
446c502995 Change lowercase detection to work with CJK languages
str.islower() does not properly work with characters in the Lo category
so CJK languages fail the check.

Fix #7698
2022-03-15 23:37:54 -04:00
Rapptz
27dd986858 Forbid Choice annotations being used with autocomplete parameters
Since the Choice are synthetic, the library doesn't have a
pre-populated list of choices to know what to use as the resulting
value.
2022-03-15 07:09:41 -04:00
Rapptz
f015b59e43 Add CommandTree.walk_commands and Group.walk_commands 2022-03-15 03:24:20 -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
Rapptz
42beec9fa9 Fix bug when app commands would not have a module attribute set on copy 2022-03-12 20:55:08 -05:00
Rapptz
1d1bba1f90 Support app_commands.guilds decorator for context menu commands 2022-03-12 09:28:46 -05:00
Rapptz
0ef369c0fa [commands] Automatically unload top level app commands in extensions 2022-03-12 09:24:26 -05:00
Rapptz
333849e5a3 Unbind bound methods passed to Command constructor
Fixes #7600
2022-03-11 10:26:16 -05:00
Rapptz
bbf7a7981b Ensure all choices are the same type as the parameter type
Fixes #7625
2022-03-11 07:29:11 -05:00
Rapptz
377561844d Raise an error if a child command has default guilds set 2022-03-11 07:18:34 -05:00
Rapptz
f54c4ca54e Validate application command names 2022-03-11 06:40:28 -05:00
Rapptz
02fcc814e1 Allow passing guild_ids in constructors of Command and Group
Fixes #7626
2022-03-10 19:31:27 -05:00
Rapptz
f6453d9439 Fix free functions being passed a binding in autocomplete callbacks
Fix #7624
2022-03-10 19:26:00 -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
Rapptz
5741ad9368 Change default guild IDs attribute to persist on copy 2022-03-09 20:26:54 -05:00
Rapptz
0d126c594c Use descriptor protocol to obtain attribute name instead of a dict 2022-03-09 20:26:54 -05:00