77 Commits

Author SHA1 Message Date
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
Rapptz
5b8bcaff73 Validate and bind parent in Group.add_command 2022-03-16 07:32:01 -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
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
8ced1143e3 Change missing application ID error to be more descriptive 2022-03-15 07:22:44 -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
698d1e12a1 Add CommandTree.error decorator to set on_error dynamically 2022-03-15 06:57:25 -04:00
Rapptz
20aa6f866d Fix CommandTree removal and getter overloads 2022-03-15 03:34:04 -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
Rapptz
aa006f345a Add more special methods to Namespace for ease of use.
* __getattr__ would allow it to no longer AttributeError while
  simultaneously letting linters and type checkers understand that
  this is a bag of dynamic attributes.
* __contains__ allows checking for the existence of an attribute
* __getitem__ allows accessing a value even if its name is not a valid
  Python identifier.
2022-03-14 22:49:47 -04:00
Rapptz
f0a47f5a40 Allow single element Literal in app commands
Fix #7690
2022-03-14 21:17:00 -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
5e9097179b Add CommandTree.copy_global_to method for quick development 2022-03-12 21:32:35 -05: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
d63fd578c2 Change TextChannel annotation channel_types to include news channels 2022-03-12 20:51:32 -05:00
Rapptz
6def5c9131 Allow specifying float default values for app commands 2022-03-12 09:41:28 -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
a672455ca9 Fix some context menu commands not being registered in guild contexts
This happened when there weren't any application commands due to a typo
stemming from a copy paste error.

Fixes #7650
2022-03-12 08:39:57 -05:00
Rapptz
9fd63ad7f3 Fix Optional type hints not respecting explicitly set defaults 2022-03-12 02:03:17 -05:00
Rapptz
333849e5a3 Unbind bound methods passed to Command constructor
Fixes #7600
2022-03-11 10:26:16 -05:00
Rapptz
140a827190 Fix default guilds for commands not being respected
Pesky little typo

Fix #7641
2022-03-11 08:33:37 -05:00
Rapptz
740c156cd8 Allow Optional transformers to work at runtime 2022-03-11 08:06:11 -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
26c6b4d449 Use new differentiator for guild and global commands
Fixes #7602
2022-03-10 20:10:49 -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
Arthur
8502978649
Check the global scope when dispatching context menus 2022-03-10 18:51:14 -05:00