Skip to content

Commit 867ed5a

Browse files
committed
fix: bug in subcommand processing on initial sync
1 parent 4c72523 commit 867ed5a

File tree

1 file changed

+17
-16
lines changed

1 file changed

+17
-16
lines changed

interactions/client/client.py

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1530,26 +1530,27 @@ def _cache_sync_response(self, sync_response: list[dict], scope: "Snowflake_Type
15301530
command_id = Snowflake(cmd_data["id"])
15311531
command_name = cmd_data["name"]
15321532

1533-
if command := self.interactions_by_scope[scope].get(command_name):
1534-
command.cmd_id[scope] = command_id
1535-
self._interaction_lookup[command.resolved_name] = command
1536-
continue
1537-
else:
1538-
for subcommand in cmd_data.get("options", []):
1539-
if subcommand["type"] in (
1540-
OptionType.SUB_COMMAND,
1541-
OptionType.SUB_COMMAND_GROUP,
1542-
):
1543-
subcommand_name = f"{command_name} {subcommand['name']}"
1544-
if subcommand["type"] == OptionType.SUB_COMMAND_GROUP:
1545-
for _sc in subcommand.get("options", []):
1546-
subcommand_name = f"{subcommand_name} {_sc['name']}"
1547-
if command := self.interactions_by_scope[scope].get(subcommand_name):
1533+
if any(
1534+
option["type"] in (OptionType.SUB_COMMAND, OptionType.SUB_COMMAND_GROUP)
1535+
for option in cmd_data.get("options", [])
1536+
):
1537+
for option in cmd_data.get("options", []):
1538+
if option["type"] in (OptionType.SUB_COMMAND, OptionType.SUB_COMMAND_GROUP):
1539+
command_name = f"{command_name} {option['name']}"
1540+
if option["type"] == OptionType.SUB_COMMAND_GROUP:
1541+
for _sc in option.get("options", []):
1542+
command_name = f"{command_name} {_sc['name']}"
1543+
if command := self.interactions_by_scope[scope].get(command_name):
15481544
command.cmd_id[scope] = command_id
15491545
self._interaction_lookup[command.resolved_name] = command
1550-
elif command := self.interactions_by_scope[scope].get(subcommand_name):
1546+
elif command := self.interactions_by_scope[scope].get(command_name):
15511547
command.cmd_id[scope] = command_id
15521548
self._interaction_lookup[command.resolved_name] = command
1549+
continue
1550+
elif command := self.interactions_by_scope[scope].get(command_name):
1551+
command.cmd_id[scope] = command_id
1552+
self._interaction_lookup[command.resolved_name] = command
1553+
continue
15531554

15541555
async def get_context(self, data: dict) -> InteractionContext:
15551556
match data["type"]:

0 commit comments

Comments
 (0)