Skip to content

Commit 4fc378b

Browse files
authored
fix: parse options again after setting cog (Pycord-Development#2330)
fix: parse options after setting cog
1 parent 5c36f41 commit 4fc378b

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

discord/commands/core.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -710,9 +710,9 @@ def __init__(self, func: Callable, *args, **kwargs) -> None:
710710
def _validate_parameters(self):
711711
params = self._get_signature_parameters()
712712
if kwop := self.options:
713-
self.options: list[Option] = self._match_option_param_names(params, kwop)
713+
self.options = self._match_option_param_names(params, kwop)
714714
else:
715-
self.options: list[Option] = self._parse_options(params)
715+
self.options = self._parse_options(params)
716716

717717
def _check_required_params(self, params):
718718
params = iter(params.items())
@@ -850,9 +850,18 @@ def cog(self):
850850
return getattr(self, "_cog", None)
851851

852852
@cog.setter
853-
def cog(self, val):
854-
self._cog = val
855-
self._validate_parameters()
853+
def cog(self, value):
854+
old_cog = self.cog
855+
self._cog = value
856+
857+
if (
858+
old_cog is None
859+
and value is not None
860+
or value is None
861+
and old_cog is not None
862+
):
863+
params = self._get_signature_parameters()
864+
self.options = self._parse_options(params)
856865

857866
@property
858867
def is_subcommand(self) -> bool:

0 commit comments

Comments
 (0)