|
|
@ -590,6 +590,8 @@ class Message(Hashable): |
|
|
|
A list of components in the message. |
|
|
|
|
|
|
|
.. versionadded:: 2.0 |
|
|
|
guild: Optional[:class:`Guild`] |
|
|
|
The guild that the message belongs to, if applicable. |
|
|
|
""" |
|
|
|
|
|
|
|
__slots__ = ( |
|
|
@ -601,7 +603,6 @@ class Message(Hashable): |
|
|
|
'_cs_raw_channel_mentions', |
|
|
|
'_cs_raw_role_mentions', |
|
|
|
'_cs_system_content', |
|
|
|
'_cs_guild', |
|
|
|
'tts', |
|
|
|
'content', |
|
|
|
'channel', |
|
|
@ -623,6 +624,7 @@ class Message(Hashable): |
|
|
|
'activity', |
|
|
|
'stickers', |
|
|
|
'components', |
|
|
|
'guild', |
|
|
|
) |
|
|
|
|
|
|
|
if TYPE_CHECKING: |
|
|
@ -656,6 +658,11 @@ class Message(Hashable): |
|
|
|
self.stickers = [Sticker(data=d, state=state) for d in data.get('stickers', [])] |
|
|
|
self.components = [_component_factory(d) for d in data.get('components', [])] |
|
|
|
|
|
|
|
try: |
|
|
|
self.guild = channel.guild |
|
|
|
except AttributeError: |
|
|
|
self.guild = state._get_guild(utils._get_as_snowflake(data, 'guild_id')) |
|
|
|
|
|
|
|
try: |
|
|
|
ref = data['message_reference'] |
|
|
|
except KeyError: |
|
|
@ -851,19 +858,10 @@ class Message(Hashable): |
|
|
|
def _handle_components(self, components: List[ComponentPayload]): |
|
|
|
self.components = [_component_factory(d) for d in components] |
|
|
|
|
|
|
|
def _rebind_channel_reference(self, new_channel: Union[TextChannel, Thread, DMChannel, GroupChannel]) -> None: |
|
|
|
def _rebind_cached_references(self, new_guild: Guild, new_channel: Union[TextChannel, Thread]) -> None: |
|
|
|
self.guild = new_guild |
|
|
|
self.channel = new_channel |
|
|
|
|
|
|
|
try: |
|
|
|
del self._cs_guild # type: ignore |
|
|
|
except AttributeError: |
|
|
|
pass |
|
|
|
|
|
|
|
@utils.cached_slot_property('_cs_guild') |
|
|
|
def guild(self) -> Optional[Guild]: |
|
|
|
"""Optional[:class:`Guild`]: The guild that the message belongs to, if applicable.""" |
|
|
|
return getattr(self.channel, 'guild', None) |
|
|
|
|
|
|
|
@utils.cached_slot_property('_cs_raw_mentions') |
|
|
|
def raw_mentions(self) -> List[int]: |
|
|
|
"""List[:class:`int`]: A property that returns an array of user IDs matched with |
|
|
|