107 Commits

Author SHA1 Message Date
Rapptz
2e02f618f0 Add support for enum values that aren't int, str, or float
This coerces them into string options to allow them to be transformed
in the actual code.
2022-04-18 20:15:45 -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
cdf442bc32 Fix signature detection in CommandTree.error decorator 2022-04-13 22:30:39 -04:00
Rapptz
3f4fb91328 Change CommandTree.on_error to only take two parameters
The command that failed can be retrieved using Interaction.command
so having it as a parameter doesn't make much sense.
2022-04-13 22:29:27 -04:00
Rapptz
83fae4f0fa Add CommandTree.clear_commands 2022-04-13 22:20:05 -04:00
Rapptz
3bb4d3bd6d Allow internal library enums to be used as an annotation 2022-04-12 20:15:11 -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
NextChai
5892bbd8b4
Allow getting all commands from CommandTree.get_commands
Co-authored-by: Danny <Rapptz@users.noreply.github.com>
2022-04-10 23:00:18 -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
Rapptz
907d5e0ee7 Document Forbidden exception in CommandTree.sync 2022-04-03 22:57:54 -04:00
Josh
20d2ab96e8
Fix check for when autocomplete is overridden 2022-04-03 05:36:57 -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
6986733833 Revert "Validate Option names similar to slash command names"
This reverts commit 6ef2043b1076f2a5694b44fef785b06e83603aa3.
2022-04-01 06:58:11 -04:00
Rapptz
6ef2043b10 Validate Option names similar to slash command names 2022-04-01 00:09:02 -04:00
Rapptz
24f8f8d4a7 Rename MaxCommandsReached to CommandLimitReached 2022-03-31 23:10:13 -04:00
Rapptz
a0618ef791 Clarify documentation certain tree methods 2022-03-31 10:31:48 -04:00
Rapptz
34b2ff40b6 Change ValueError on max commands reached to a more specific exception 2022-03-31 09:34:48 -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
ff24c5229e Add iterator special method for Namespace
Fix #7812
2022-03-30 21:45:30 -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
Rapptz
b7b992375d Add examples for new cooldown checks 2022-03-29 06:02:41 -04:00
Rapptz
9f83eb6032 Add application command cooldown decorators
Fix #7790
2022-03-29 00:46:42 -04:00
Rapptz
74b5e0ceb1 Implement some built in checks for app_commands
A lot of these implementations are adapted from the equivalent
ext.commands checks. These only implement the common ones that could
not solely be done by Discord in the future.
2022-03-28 16:36:29 -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
def035bf9a Remove StoreChannel and any references to it 2022-03-28 00:09:19 -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
James Gayfer
f26d3a7155
Add interaction check to command tree
In some cases, it's desirable for our command tree to only process a
subset of incoming interactions, such as in a multi process deployment.
2022-03-24 22:32:56 -04:00
Rapptz
e9ed231a03 Allow Transformer.transform to be synchronous as well. 2022-03-22 22:44:42 -04:00
Rapptz
1f3aa377c3 Wrap non-AppCommandError exceptions with TransformerError 2022-03-22 19:07:22 -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
195c923bec Fallback to Object if the type is not resolved in namespace 2022-03-19 01:38:16 -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