|
18 | 18 |
|
19 | 19 | import interactions.models as models |
20 | 20 | from interactions.client.const import GUILD_WELCOME_MESSAGES, MISSING, Absent |
21 | | -from interactions.client.errors import ThreadOutsideOfGuild |
| 21 | +from interactions.client.errors import ThreadOutsideOfGuild, NotFound |
22 | 22 | from interactions.client.mixins.serialization import DictSerializationMixin |
23 | 23 | from interactions.client.utils.attr_converters import optional as optional_c |
24 | 24 | from interactions.client.utils.attr_converters import timestamp_converter |
@@ -400,7 +400,11 @@ async def fetch_referenced_message(self, *, force: bool = False) -> Optional["Me |
400 | 400 | """ |
401 | 401 | if self._referenced_message_id is None: |
402 | 402 | return None |
403 | | - return await self._client.cache.fetch_message(self._channel_id, self._referenced_message_id, force=force) |
| 403 | + |
| 404 | + try: |
| 405 | + return await self._client.cache.fetch_message(self._channel_id, self._referenced_message_id, force=force) |
| 406 | + except NotFound: |
| 407 | + return None |
404 | 408 |
|
405 | 409 | def get_referenced_message(self) -> Optional["Message"]: |
406 | 410 | """ |
@@ -492,6 +496,8 @@ def _process_dict(cls, data: dict, client: "Client") -> dict: # noqa: C901 |
492 | 496 | ref_message_data["guild_id"] = data.get("guild_id") |
493 | 497 | _m = client.cache.place_message_data(ref_message_data) |
494 | 498 | data["referenced_message_id"] = _m.id |
| 499 | + elif msg_reference := data.get("message_reference"): |
| 500 | + data["referenced_message_id"] = msg_reference["message_id"] |
495 | 501 |
|
496 | 502 | if "interaction" in data: |
497 | 503 | data["interaction"] = MessageInteraction.from_dict(data["interaction"], client) |
|
0 commit comments