aboutsummaryrefslogtreecommitdiff
path: root/discord/message.py
diff options
context:
space:
mode:
authorLilly Rose Berner <[email protected]>2021-06-29 01:03:59 +0200
committerGitHub <[email protected]>2021-06-28 19:03:59 -0400
commit6b1d46a1eac4a6fcd2607c50fda02ddb10a330a8 (patch)
treec77ca044866ca1ba9cb639cafd2ade8538ec41b0 /discord/message.py
parentDispatch thread_join when a thread is updated but not in cache (diff)
downloaddiscord.py-6b1d46a1eac4a6fcd2607c50fda02ddb10a330a8.tar.xz
discord.py-6b1d46a1eac4a6fcd2607c50fda02ddb10a330a8.zip
Set Message.guild from guild_id if unavailable through Message.channel
Diffstat (limited to 'discord/message.py')
-rw-r--r--discord/message.py22
1 files changed, 10 insertions, 12 deletions
diff --git a/discord/message.py b/discord/message.py
index 3f5df3bd..7d6cdaa0 100644
--- a/discord/message.py
+++ b/discord/message.py
@@ -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:
@@ -657,6 +659,11 @@ class Message(Hashable):
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:
self.reference = None
@@ -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