Allow creating a public thread without a starter message
This commit is contained in:
@ -637,6 +637,7 @@ class TextChannel(discord.abc.Messageable, discord.abc.GuildChannel, Hashable):
|
||||
name: str,
|
||||
message: Optional[Snowflake] = None,
|
||||
auto_archive_duration: ThreadArchiveDuration = 1440,
|
||||
type: Optional[ChannelType] = None,
|
||||
reason: Optional[str] = None
|
||||
) -> Thread:
|
||||
"""|coro|
|
||||
@ -645,7 +646,9 @@ class TextChannel(discord.abc.Messageable, discord.abc.GuildChannel, Hashable):
|
||||
|
||||
If no starter message is passed with the ``message`` parameter then
|
||||
you must have :attr:`~discord.Permissions.send_messages` and
|
||||
:attr:`~discord.Permissions.use_private_threads` in order to start the thread.
|
||||
:attr:`~discord.Permissions.use_private_threads` in order to start the thread
|
||||
if the ``type`` parameter is :attr:`~discord.ChannelType.private_thread`.
|
||||
Otherwise :attr:`~discord.Permissions.use_public_threads` is needed.
|
||||
|
||||
If a starter message is passed with the ``message`` parameter then
|
||||
you must have :attr:`~discord.Permissions.send_messages` and
|
||||
@ -664,6 +667,10 @@ class TextChannel(discord.abc.Messageable, discord.abc.GuildChannel, Hashable):
|
||||
auto_archive_duration: :class:`int`
|
||||
The duration in minutes before a thread is automatically archived for inactivity.
|
||||
Defaults to ``1440`` or 24 hours.
|
||||
type: Optional[:class:`ChannelType`]
|
||||
The type of thread to create. If a ``message`` is passed then this parameter
|
||||
is ignored, as a thread started with a message is always a public thread.
|
||||
By default this creates a private thread if this is ``None``.
|
||||
reason: :class:`str`
|
||||
The reason for starting a new thread. Shows up on the audit log.
|
||||
|
||||
@ -680,21 +687,23 @@ class TextChannel(discord.abc.Messageable, discord.abc.GuildChannel, Hashable):
|
||||
The started thread
|
||||
"""
|
||||
|
||||
if type is None:
|
||||
type = ChannelType.private_thread
|
||||
|
||||
if message is None:
|
||||
data = await self._state.http.start_private_thread(
|
||||
data = await self._state.http.start_thread_without_message(
|
||||
self.id,
|
||||
name=name,
|
||||
auto_archive_duration=auto_archive_duration,
|
||||
type=ChannelType.private_thread.value,
|
||||
type=type.value,
|
||||
reason=reason,
|
||||
)
|
||||
else:
|
||||
data = await self._state.http.start_public_thread(
|
||||
data = await self._state.http.start_thread_with_message(
|
||||
self.id,
|
||||
message.id,
|
||||
name=name,
|
||||
auto_archive_duration=auto_archive_duration,
|
||||
type=ChannelType.public_thread.value,
|
||||
reason=reason,
|
||||
)
|
||||
|
||||
|
Reference in New Issue
Block a user