fix (interactions): Allow empty message.

In some circumstances, interactions may be returned with no `message`.
Fixes a bug causing this to crash the entire event loop.
This commit is contained in:
2022-04-25 22:35:49 +03:00
parent 5eef17329d
commit a5d23b5153

View File

@@ -229,13 +229,16 @@ def parse_interaction_create(self, data):
# Assume user # Assume user
user = self.get_user(_get_as_snowflake(data['user'], 'id')) or User(data=data['user'], state=self) user = self.get_user(_get_as_snowflake(data['user'], 'id')) or User(data=data['user'], state=self)
message = self._get_message(_get_as_snowflake(data['message'], 'id')) if 'message' in data:
if not message: message = self._get_message(_get_as_snowflake(data['message'], 'id'))
message_data = data['message'] if not message:
channel, _ = self._get_guild_channel(message_data) message_data = data['message']
message = Message(data=message_data, channel=channel, state=self) channel, _ = self._get_guild_channel(message_data)
if self._messages is not None: message = Message(data=message_data, channel=channel, state=self)
self._messages.append(message) if self._messages is not None:
self._messages.append(message)
else:
message = None
interaction = None interaction = None
if data['type'] == InteractionType.MESSAGE_COMPONENT: if data['type'] == InteractionType.MESSAGE_COMPONENT: