Skip to content

Commit 570c671

Browse files
fix: Allow sub command autocomplete dispatch (#781)
* fix: Allow sub command autocompletew dispatch * ci: correct from checks. Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent b20485a commit 570c671

File tree

1 file changed

+41
-7
lines changed

1 file changed

+41
-7
lines changed

interactions/api/gateway/client.py

Lines changed: 41 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -311,13 +311,47 @@ def _dispatch_event(self, event: str, data: dict) -> None: # sourcery no-metric
311311

312312
if _context.data._json.get("options"):
313313
for option in _context.data.options:
314-
315-
if option.focused:
316-
__name, _value = self.__sub_command_context(option, _context)
317-
_name += f"_{__name}" if __name else ""
318-
319-
if _value:
320-
__args.append(_value)
314+
if isinstance(option, dict):
315+
option = Option(**option)
316+
if option.type not in (
317+
OptionType.SUB_COMMAND,
318+
OptionType.SUB_COMMAND_GROUP,
319+
):
320+
if option.focused:
321+
__name, _value = self.__sub_command_context(option, _context)
322+
_name += f"_{__name}" if __name else ""
323+
if _value:
324+
__args.append(_value)
325+
326+
elif option.type == OptionType.SUB_COMMAND:
327+
for _option in option.options:
328+
if isinstance(_option, dict):
329+
_option = Option(**_option)
330+
if _option.focused:
331+
__name, _value = self.__sub_command_context(
332+
_option, _context
333+
)
334+
_name += f"_{__name}" if __name else ""
335+
if _value:
336+
__args.append(_value)
337+
break
338+
339+
elif option.type == OptionType.SUB_COMMAND_GROUP:
340+
for _option in option.options:
341+
if isinstance(_option, dict):
342+
_option = Option(**_option)
343+
for __option in _option.options:
344+
if isinstance(__option, dict):
345+
__option = Option(**__option)
346+
if __option.focused:
347+
__name, _value = self.__sub_command_context(
348+
__option, _context
349+
)
350+
_name += f"_{__name}" if __name else ""
351+
if _value:
352+
__args.append(_value)
353+
break
354+
break
321355
break
322356

323357
self._dispatch.dispatch("on_autocomplete", _context)

0 commit comments

Comments
 (0)