mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-04-19 15:36:02 +00:00
Allow Message.channel to be a thread
This commit is contained in:
parent
51cc7622a6
commit
ac95b8b85b
@ -493,6 +493,10 @@ class Guild(Hashable):
|
||||
def get_channel(self, channel_id):
|
||||
"""Returns a channel with the given ID.
|
||||
|
||||
.. note::
|
||||
|
||||
This does *not* search for threads.
|
||||
|
||||
Parameters
|
||||
-----------
|
||||
channel_id: :class:`int`
|
||||
|
@ -80,6 +80,7 @@ __all__ = (
|
||||
'DeletedReferencedMessage',
|
||||
)
|
||||
|
||||
|
||||
def convert_emoji_reaction(emoji):
|
||||
if isinstance(emoji, Reaction):
|
||||
emoji = emoji.emoji
|
||||
@ -513,8 +514,8 @@ class Message(Hashable):
|
||||
This is not stored long term within Discord's servers and is only used ephemerally.
|
||||
embeds: List[:class:`Embed`]
|
||||
A list of embeds the message has.
|
||||
channel: Union[:class:`TextChannel`, :class:`DMChannel`, :class:`GroupChannel`]
|
||||
The :class:`TextChannel` that the message was sent from.
|
||||
channel: Union[:class:`TextChannel`, :class:`Thread`, :class:`DMChannel`, :class:`GroupChannel`]
|
||||
The :class:`TextChannel` or :class:`Thread` that the message was sent from.
|
||||
Could be a :class:`DMChannel` or :class:`GroupChannel` if it's a private message.
|
||||
reference: Optional[:class:`~discord.MessageReference`]
|
||||
The message that this message references. This is only applicable to messages of
|
||||
@ -632,7 +633,7 @@ class Message(Hashable):
|
||||
self,
|
||||
*,
|
||||
state: ConnectionState,
|
||||
channel: Union[TextChannel, DMChannel, GroupChannel],
|
||||
channel: Union[TextChannel, Thread, DMChannel, GroupChannel],
|
||||
data: MessagePayload,
|
||||
):
|
||||
self._state = state
|
||||
@ -850,7 +851,7 @@ 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, DMChannel, GroupChannel]) -> None:
|
||||
def _rebind_channel_reference(self, new_channel: Union[TextChannel, Thread, DMChannel, GroupChannel]) -> None:
|
||||
self.channel = new_channel
|
||||
|
||||
try:
|
||||
|
@ -380,7 +380,7 @@ class ConnectionState:
|
||||
channel = DMChannel._from_message(self, channel_id)
|
||||
guild = None
|
||||
else:
|
||||
channel = guild and guild.get_channel(channel_id)
|
||||
channel = guild and (guild.get_channel(channel_id) or guild.get_thread(channel_id))
|
||||
|
||||
return channel or Object(id=channel_id), guild
|
||||
|
||||
@ -1181,7 +1181,7 @@ class AutoShardedConnectionState(ConnectionState):
|
||||
new_guild = self._get_guild(msg.guild.id)
|
||||
if new_guild is not None and new_guild is not msg.guild:
|
||||
channel_id = msg.channel.id
|
||||
channel = new_guild.get_channel(channel_id) or Object(id=channel_id)
|
||||
channel = new_guild.get_channel(channel_id) or new_guild.get_thread(channel_id) or Object(id=channel_id)
|
||||
msg._rebind_channel_reference(channel)
|
||||
|
||||
async def chunker(self, guild_id, query='', limit=0, presences=False, *, shard_id=None, nonce=None):
|
||||
|
Loading…
x
Reference in New Issue
Block a user