diff --git a/disnake/message.py b/disnake/message.py index 714069cc50..21f59e269e 100644 --- a/disnake/message.py +++ b/disnake/message.py @@ -603,7 +603,7 @@ def __init__( def with_state(cls, state: ConnectionState, data: MessageReferencePayload) -> Self: self = cls.__new__(cls) self.message_id = utils._get_as_snowflake(data, "message_id") - self.channel_id = int(data.pop("channel_id")) + self.channel_id = int(data["channel_id"]) self.guild_id = utils._get_as_snowflake(data, "guild_id") self.fail_if_not_exists = data.get("fail_if_not_exists", True) self._state = state @@ -658,10 +658,9 @@ def __repr__(self) -> str: return f"" def to_dict(self) -> MessageReferencePayload: - result: MessageReferencePayload = ( - {"message_id": self.message_id} if self.message_id is not None else {} - ) - result["channel_id"] = self.channel_id + result: MessageReferencePayload = {"channel_id": self.channel_id} + if self.message_id is not None: + result["message_id"] = self.message_id if self.guild_id is not None: result["guild_id"] = self.guild_id if self.fail_if_not_exists is not None: diff --git a/disnake/types/message.py b/disnake/types/message.py index a7501fbb93..26f691c6bb 100644 --- a/disnake/types/message.py +++ b/disnake/types/message.py @@ -63,11 +63,11 @@ class MessageApplication(TypedDict): cover_image: NotRequired[str] -class MessageReference(TypedDict, total=False): - message_id: Snowflake +class MessageReference(TypedDict): + message_id: NotRequired[Snowflake] channel_id: Snowflake - guild_id: Snowflake - fail_if_not_exists: bool + guild_id: NotRequired[Snowflake] + fail_if_not_exists: NotRequired[bool] class RoleSubscriptionData(TypedDict):