diff --git a/discord/commands.py b/discord/commands.py index 0809d8a06..379713235 100644 --- a/discord/commands.py +++ b/discord/commands.py @@ -70,7 +70,7 @@ class ApplicationCommand(Protocol): if getattr(channel, 'guild', None) is not None: payload['guild_id'] = str(channel.guild.id) - state._interactions[payload['nonce']] = 2 + state._interactions[payload['nonce']] = (2, data['name']) await state.http.interact(payload, form_data=True) try: i = await state.client.wait_for( diff --git a/discord/interactions.py b/discord/interactions.py index a4a981813..98224cd9d 100644 --- a/discord/interactions.py +++ b/discord/interactions.py @@ -76,9 +76,9 @@ class Interaction: @classmethod def _from_self( - cls, *, id: Snowflake, type: int, nonce: Optional[Snowflake] = None, user: ClientUser + cls, *, id: Snowflake, type: int, nonce: Optional[Snowflake] = None, user: ClientUser, name: str ) -> Interaction: - return cls(int(id), type, nonce, user=user) + return cls(int(id), type, nonce, user=user, name=name) @classmethod def _from_message( diff --git a/discord/state.py b/discord/state.py index 03b2527f9..cb1d9cefa 100644 --- a/discord/state.py +++ b/discord/state.py @@ -263,7 +263,7 @@ class ConnectionState: self._voice_clients: Dict[int, VoiceProtocol] = {} self._voice_states: Dict[int, VoiceState] = {} - self._interactions: Dict[Union[int, str], Union[int, Interaction]] = {} + self._interactions: Dict[Union[int, str], Union[Tuple[int, str], Interaction]] = {} self._relationships: Dict[int, Relationship] = {} self._private_channels: Dict[int, PrivateChannel] = {} self._private_channels_by_user: Dict[int, DMChannel] = {} @@ -1666,8 +1666,8 @@ class ConnectionState: self.dispatch('relationship_remove', old) def parse_interaction_create(self, data) -> None: - type = self._interactions.pop(data['nonce'], 0) - i = Interaction._from_self(type=type, user=self.user, **data) + type, name = self._interactions.pop(data['nonce'], (0, '')) + i = Interaction._from_self(type=type, user=self.user, name=name, **data) # type: ignore self._interactions[i.id] = i self.dispatch('interaction_create', i) @@ -1676,7 +1676,7 @@ class ConnectionState: i = self._interactions.pop(id, None) if i is None: i = Interaction(**data) - i.successful = True + i.successful = True # type: ignore self.dispatch('interaction_finish', i) def parse_interaction_failed(self, data) -> None: