interface PrivateThreadChannel
extends
ThreadChannel<false>export interface PrivateThreadChannel extends ThreadChannel<false>The time at which this thread's archive status was last changed If the thread was never archived or unarchived, this is the time at which the thread was created
Inherited from: ThreadChannel
The timestamp when the thread's archive status was last changed If the thread was never archived or unarchived, this is the timestamp at which the thread was created
Inherited from: ThreadChannel
autoArchiveDuration : ThreadAutoArchiveDuration | null
The amount of time (in minutes) after which the thread will automatically archive in case of no recent activity
Inherited from: ThreadChannel
readonlycreatedAt : Date
readonlycreatedTimestamp : number
readonlyeditable : boolean
Whether the thread is editable by the client user (name, archived, autoArchiveDuration)
Inherited from: ThreadChannel
flags : Readonly<ChannelFlagsBitField>
The flags that are applied to the channel. This is only null in a PartialGroupDMChannel. In all other cases, it is not null.
Inherited from: ThreadChannel
readonlyguildMembers : Collection<Snowflake, GuildMember>
A collection of associated guild member objects of this thread's members
Inherited from: ThreadChannel
Whether members without the permission can invite other members to this thread. This property is always null in public threads.
Inherited from: ThreadChannel
readonlyjoinable : boolean
Whether the thread is joinable by the client user
Inherited from: ThreadChannel
readonlyjoined : boolean
Whether the client user is a member of the thread.
Inherited from: ThreadChannel
readonlyoptionallastMessage? : Message
The Message object of the last message in the channel, if one was sent
Inherited from: ThreadChannel
optionallastMessageId? : Snowflake
The last message id sent in this thread, if one was sent
Inherited from: ThreadChannel
readonlyoptionallastPinAt? : Date
The date when the last pinned message was pinned, if there was one
Inherited from: ThreadChannel
optionallastPinTimestamp? : number
The timestamp when the last pinned message was pinned, if there was one
Inherited from: ThreadChannel
readonlymanageable : boolean
Whether the thread is manageable by the client user, for deleting or editing rateLimitPerUser or locked.
Inherited from: ThreadChannel
The approximate count of users in this thread This stops counting at 50. If you need an approximate value higher than that, use ThreadChannel#members.cache.size
Inherited from: ThreadChannel
members : ThreadMemberManager
A manager of the members that are part of this thread
Inherited from: ThreadChannel
The approximate count of messages in this thread Threads created before July 1, 2022 may have an inaccurate count. If you need an approximate value higher than that, use ThreadChannel#messages.cache.size
Inherited from: ThreadChannel
messages : GuildMessageManager
A manager of the messages sent to this thread
Inherited from: ThreadChannel
readonlyparent : If<ThreadOnly, ForumChannel | MediaChannel, TextChannel | NewsChannel> | null
The parent channel of this thread
Inherited from: ThreadChannel
Whether this Channel is a partial This is always false outside of DM channels.
Inherited from: BaseChannel
The rate limit per user (slowmode) for this thread in seconds
Inherited from: ThreadChannel
readonlysendable : boolean
Whether the client user can send messages in this thread
Inherited from: ThreadChannel
The number of messages ever sent in a thread, similar to messageCount except it will not decrement whenever a message is deleted
Inherited from: ThreadChannel
type : ChannelType.PrivateThread
readonlyunarchivable : boolean
Whether the thread is unarchivable by the client user
Inherited from: ThreadChannel
readonlyviewable : boolean
Whether the thread is viewable by the client user
Inherited from: ThreadChannel
awaitMessageComponent(options?: AwaitMessageComponentOptions) : Promise<MessageComponentInteraction>
Collects a single component interaction that passes the filter. The Promise will reject if the time expires.
// Collect a message component interaction
const filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';
channel.awaitMessageComponent({ filter, time: 15_000 })
.then(interaction => console.log(`${interaction.customId} was clicked!`))
.catch(console.error);Inherited from: ThreadChannel
awaitMessages(options?: AwaitMessagesOptions) : Promise<Collection<Snowflake, Message>>
Similar to createMessageCollector but in promise form. Resolves with a collection of messages that pass the specified filter.
// Await !vote messages
const filter = m => m.content.startsWith('!vote');
// Errors: ['time'] treats ending because of the time limit as an error
channel.awaitMessages({ filter, max: 4, time: 60_000, errors: ['time'] })
.then(collected => console.log(collected.size))
.catch(collected => console.log(`After a minute, only ${collected.size} out of 4 voted.`));Inherited from: ThreadChannel
bulkDelete(messages: Collection<Snowflake, Message> | Array<MessageResolvable> | numberfilterOld?: boolean) : Promise<Collection<Snowflake, (Message|undefined)>>
Bulk deletes given messages that are newer than two weeks.
// Bulk delete messages
channel.bulkDelete(5)
.then(messages => console.log(`Bulk deleted ${messages.size} messages`))
.catch(console.error);Returns: Returns the deleted messages *
Inherited from: ThreadChannel
createMessageCollector(options?: MessageCollectorOptions) : MessageCollector
Creates a Message Collector.
// Create a message collector
const filter = message => message.content.includes('discord');
const collector = channel.createMessageCollector({ filter, time: 15_000 });
collector.on('collect', message => console.log(`Collected ${message.content}`));
collector.on('end', collected => console.log(`Collected ${collected.size} items`));Inherited from: ThreadChannel
createMessageComponentCollector(options?: MessageComponentCollectorOptions) : InteractionCollector
Creates a component interaction collector.
// Create a button interaction collector
const filter = (interaction) => interaction.customId === 'button' && interaction.user.id === 'someId';
const collector = channel.createMessageComponentCollector({ filter, time: 15_000 });
collector.on('collect', interaction => console.log(`Collected ${interaction.customId}`));
collector.on('end', collected => console.log(`Collected ${collected.size} items`));Inherited from: ThreadChannel
Deletes this thread.
// Delete the thread
thread.delete('cleaning out old threads')
.then(deletedThread => console.log(deletedThread))
.catch(console.error);Inherited from: ThreadChannel
edit(options: ThreadEditOptions) : Promise<this>
Edits this thread.
// Edit a thread
thread.edit({ name: 'new-thread' })
.then(editedThread => console.log(editedThread))
.catch(console.error);Inherited from: ThreadChannel
fetchOwner(options?: FetchThreadOwnerOptions) : Promise<ThreadMember | null>
Fetches the owner of this thread. If the thread member object isn't needed, use ownerId instead.
Inherited from: ThreadChannel
fetchStarterMessage(options?: BaseFetchOptions) : Promise<Message<true> | null>
Fetches the message that started this thread, if any. The Promise will reject if the original message in a forum post is deleted or when the original message in the parent channel is deleted. If you just need the id of that message, use id instead.
Inherited from: ThreadChannel
isDMBased() : this is PartialGroupDMChannel | DMChannel | PartialDMChannel
Indicates whether this channel is DM-based (either a DMChannel or a PartialGroupDMChannel).
Inherited from: BaseChannel
isSendable() : this is SendableChannels
Indicates whether this channel is sendable.
Inherited from: BaseChannel
isTextBased() : this is TextBasedChannel
Indicates whether this channel is text-based.
Inherited from: BaseChannel
isThread() : this is AnyThreadChannel
Indicates whether this channel is a ThreadChannel.
Inherited from: BaseChannel
isThreadOnly() : this is ThreadOnlyChannel
Indicates whether this channel is thread-only.
Inherited from: BaseChannel
isVoiceBased() : this is VoiceBasedChannel
Indicates whether this channel is voice-based.
Inherited from: BaseChannel
permissionsFor(memberOrRole: GuildMember | RolecheckAdmin?: boolean) : Readonly<PermissionsBitField>
Gets the overall set of permissions for a member or role in this thread's parent channel, taking overwrites into account.
pin(reason?: string) : Promise<If<ThreadOnly, this, never>>
Pins this thread from the forum channel (only applicable to forum threads).
Inherited from: ThreadChannel
send(options: string | MessagePayload | MessageCreateOptions) : Promise<Message>
Sends a message to this channel.
// Send a basic message
channel.send('hello!')
.then(message => console.log(`Sent message: ${message.content}`))
.catch(console.error);// Send a remote file
channel.send({
files: ['https://cdn.discordapp.com/icons/222078108977594368/6e1019b3179d71046e463a75915e7244.png?size=2048']
})
.then(console.log)
.catch(console.error);// Send a local file
channel.send({
files: [{
attachment: 'entire/path/to/file.jpg',
name: 'file.jpg',
description: 'A description of the file'
}]
})
.then(console.log)
.catch(console.error);Inherited from: ThreadChannel
Sends a typing indicator in the channel.
// Start typing in a channel
channel.sendTyping();Returns: Resolves upon the typing status being sent *
Inherited from: ThreadChannel
setAppliedTags() : Promise<If<ThreadOnly, this, never>>
Set the applied tags for this channel (only applicable to forum threads)
Inherited from: ThreadChannel
Sets whether the thread is archived.
// Archive the thread
thread.setArchived(true)
.then(newThread => console.log(`Thread is now ${newThread.archived ? 'archived' : 'active'}`))
.catch(console.error);Inherited from: ThreadChannel
setAutoArchiveDuration(autoArchiveDuration: ThreadAutoArchiveDurationreason?: string) : Promise<this>
Sets the duration after which the thread will automatically archive in case of no recent activity.
// Set the thread's auto archive time to 1 hour
thread.setAutoArchiveDuration(ThreadAutoArchiveDuration.OneHour)
.then(newThread => {
console.log(`Thread will now archive after ${newThread.autoArchiveDuration} minutes of inactivity`);
});
.catch(console.error);Inherited from: ThreadChannel
Sets whether members without the permission can invite other members to this thread.
Inherited from: ThreadChannel
Sets whether the thread can be **unarchived* * by anyone with the permission. When a thread is locked, only members with the permission can unarchive it.
// Set the thread to locked
thread.setLocked(true)
.then(newThread => console.log(`Thread is now ${newThread.locked ? 'locked' : 'unlocked'}`))
.catch(console.error);Inherited from: ThreadChannel
Sets a new name for this thread.
// Change the thread's name
thread.setName('not_general')
.then(newThread => console.log(`Thread's new name is ${newThread.name}`))
.catch(console.error);Inherited from: ThreadChannel
setRateLimitPerUser() : Promise<ThreadChannel>
Sets the rate limit per user (slowmode) for this thread.
Inherited from: ThreadChannel
toString() : ChannelMention
When concatenated with a string, this automatically returns the channel's mention instead of the Channel object.
// Logs: Hello from <#123456789012345678>!
console.log(`Hello from ${channel}!`);Inherited from: ThreadChannel
unpin(reason?: string) : Promise<If<ThreadOnly, this, never>>
Unpins this thread from the forum channel (only applicable to forum threads).
Inherited from: ThreadChannel