Skip to content
This repository was archived by the owner on Mar 8, 2022. It is now read-only.

Commit 4c201e8

Browse files
committed
fixed context commands using auto_options issue
1 parent 2f0d5a6 commit 4c201e8

File tree

3 files changed

+18
-12
lines changed

3 files changed

+18
-12
lines changed

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,14 @@ You can find more (and better) examples [here](https://github.com/discord-py-ui/
176176

177177
# Changelog
178178

179+
- <details>
180+
<summary>4.2.12</summary>
181+
182+
## **Fixed**
183+
- context commands
184+
185+
</details>
186+
179187
- <details>
180188
<summary>4.2.11</summary>
181189

discord_ui/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,4 @@
4444

4545

4646
__title__ = "discord-ui"
47-
__version__ = "4.2.11"
47+
__version__ = "4.2.12"

discord_ui/slash/types.py

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -342,9 +342,9 @@ def forbidden(self) -> dict:
342342

343343

344344
class BaseCommand():
345-
def __init__(self, callback, name=MISSING, description=MISSING, options=MISSING, guild_ids=MISSING, default_permission=MISSING, guild_permissions=MISSING) -> None:
345+
def __init__(self, command_type, callback, name=MISSING, description=MISSING, options=MISSING, guild_ids=MISSING, default_permission=MISSING, guild_permissions=MISSING) -> None:
346346
self._json = {
347-
"type": CommandType.SLASH
347+
"type": command_type
348348
}
349349

350350
self.options = _default([], options)
@@ -360,7 +360,7 @@ def __init__(self, callback, name=MISSING, description=MISSING, options=MISSING,
360360
param = callback_params[op.name]
361361
if not op.required and param.default is param.empty:
362362
raise OptionalOptionParameter(param.name)
363-
if _none(options, empty_array=True):
363+
if _none(options, empty_array=True) and self.command_type == CommandType.SLASH:
364364
_ops = []
365365
has_self = False
366366
for _i, _name in enumerate(callback_params):
@@ -542,7 +542,7 @@ async def my_function(command, parameter=None):
542542
})
543543
```
544544
"""
545-
BaseCommand.__init__(self, callback, name, description, options, guild_ids, default_permission, guild_permissions)
545+
BaseCommand.__init__(self, CommandType.SLASH, callback, name, description, options, guild_ids, default_permission, guild_permissions)
546546

547547
class SlashSubcommand(BaseCommand):
548548
def __init__(self, callback, base_names, name, description=MISSING, options=[], guild_ids=MISSING, default_permission=MISSING, guild_permissions=MISSING) -> None:
@@ -552,7 +552,7 @@ def __init__(self, callback, base_names, name, description=MISSING, options=[],
552552
raise InvalidArgument("subcommand groups are currently limited to 2 bases")
553553
if any([len(x) > 32 or len(x) < 1 for x in base_names]):
554554
raise InvalidLength("base_names", 1, 32)
555-
BaseCommand.__init__(self, callback, name, description, options, guild_ids=guild_ids, default_permission=default_permission, guild_permissions=guild_permissions)
555+
BaseCommand.__init__(self, CommandType.SLASH, callback, name, description, options, guild_ids=guild_ids, default_permission=default_permission, guild_permissions=guild_permissions)
556556
self.base_names = [format_name(x) for x in base_names]
557557

558558
def to_option(self) -> SlashOption:
@@ -562,12 +562,12 @@ def to_dict(self):
562562

563563

564564
class ContextCommand(BaseCommand):
565-
def __init__(self, callback, name=MISSING, guild_ids=MISSING, default_permission = True, guild_permissions = MISSING) -> None:
565+
def __init__(self, context_type, callback, name=MISSING, guild_ids=MISSING, default_permission = True, guild_permissions = MISSING) -> None:
566566
if callback is not None:
567567
callback_params = inspect.signature(callback).parameters
568568
if len(callback_params) < 2:
569569
raise CallbackMissingContextCommandParameters()
570-
super().__init__(callback, name=name, guild_ids=guild_ids, default_permission=default_permission, guild_permissions=guild_permissions)
570+
BaseCommand.__init__(self, context_type, callback, name=name, guild_ids=guild_ids, default_permission=default_permission, guild_permissions=guild_permissions)
571571

572572
@property
573573
def description(self) -> str:
@@ -584,10 +584,8 @@ def options(self, value):
584584

585585
class UserCommand(ContextCommand):
586586
def __init__(self, callback, name=MISSING, guild_ids = MISSING, default_permission = True, guild_permissions = MISSING) -> None:
587-
super().__init__(callback, name, guild_ids, default_permission, guild_permissions)
588-
self._json["type"] = CommandType.USER
587+
super().__init__(CommandType.USER, callback, name, guild_ids, default_permission, guild_permissions)
589588

590589
class MessageCommand(ContextCommand):
591590
def __init__(self, callback, name=MISSING, guild_ids = MISSING, default_permission = True, guild_permissions = MISSING) -> None:
592-
super().__init__(callback, name, guild_ids, default_permission, guild_permissions)
593-
self._json["type"] = CommandType.MESSAGE
591+
super().__init__(CommandType.MESSAGE, callback, name, guild_ids, default_permission, guild_permissions)

0 commit comments

Comments
 (0)