class NewsChannel
extends
BaseGuildTextChannelexport class NewsChannel extends BaseGuildTextChannelRepresents a guild news channel on Discord.
readonlycreatedTimestamp : number
The timestamp the channel was created at
Inherited from: GuildChannel
optionaldefaultAutoArchiveDuration? : ThreadAutoArchiveDuration
The default auto archive duration for newly created threads in this channel
Inherited from: BaseGuildTextChannel
The initial rate limit per user (slowmode) to set on newly created threads in a channel.
Inherited from: BaseGuildTextChannel
readonlydeletable : boolean
Whether the channel is deletable by the client user
Inherited from: GuildChannel
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: GuildChannel
readonlyoptionallastMessage? : Message
The Message object of the last message in the channel, if one was sent
Inherited from: BaseGuildTextChannel
optionallastMessageId? : Snowflake
The last message id sent in the channel, if one was sent
Inherited from: BaseGuildTextChannel
readonlyoptionallastPinAt? : Date
The date when the last pinned message was pinned, if there was one
Inherited from: BaseGuildTextChannel
optionallastPinTimestamp? : number
The timestamp when the last pinned message was pinned, if there was one
Inherited from: BaseGuildTextChannel
readonlymanageable : boolean
Whether the channel is manageable by the client user
Inherited from: GuildChannel
readonlymembers : Collection<Snowflake, GuildMember>
A collection of cached members of this channel, mapped by their ids. Members that can view this channel, if the channel is text-based. Members in the channel, if the channel is voice-based.
Inherited from: GuildChannel
messages : GuildMessageManager
A manager of the messages sent to this channel
Inherited from: BaseGuildTextChannel
readonlyparent : CategoryChannel | null
The category parent of this channel
Inherited from: GuildChannel
The id of the category parent of this channel
Inherited from: GuildChannel
Whether this Channel is a partial This is always false outside of DM channels.
Inherited from: BaseChannel
permissionOverwrites : PermissionOverwriteManager
A manager of permission overwrites that belong to this channel
Inherited from: GuildChannel
If the permissionOverwrites match the parent channel, null if no parent
Inherited from: GuildChannel
Inherited from: BaseGuildTextChannel
A manager of the threads belonging to this channel
The type of the channel
readonlyviewable : boolean
Whether the channel is viewable by the client user
Inherited from: GuildChannel
addFollower(channel: TextChannelResolvablereason?: string) : Promise<NewsChannel>
Adds the target to this channel's followers.
if (channel.type === ChannelType.GuildAnnouncement) {
channel.addFollower('222197033908436994', 'Important announcements')
.then(() => console.log('Added follower'))
.catch(console.error);
} 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: BaseGuildTextChannel
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: BaseGuildTextChannel
bulkDelete(messages: Collection<Snowflake, Message> | Array<MessageResolvable> | numberfilterOld?: boolean = false) : 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: BaseGuildTextChannel
clone(options?: GuildChannelCloneOptions) : Promise<this>
Clones this channel.
Inherited from: GuildChannel
createInvite(options?: InviteCreateOptions = {}) : Promise<Invite>
Creates an invite to this guild channel.
// Create an invite to a channel
channel.createInvite()
.then(invite => console.log(`Created an invite with a code of ${invite.code}`))
.catch(console.error);Inherited from: BaseGuildTextChannel
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: BaseGuildTextChannel
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: BaseGuildTextChannel
createWebhook(options?: ChannelWebhookCreateOptions) : Promise<Webhook>
Creates a webhook for the channel.
// Create a webhook for the current channel
channel.createWebhook({
name: 'Snek',
avatar: 'https://i.imgur.com/mI8XcpG.jpg',
reason: 'Needed a cool new Webhook'
})
.then(console.log)
.catch(console.error)Returns: Returns the created Webhook *
Inherited from: BaseGuildTextChannel
Deletes this channel.
// Delete the channel
channel.delete('making room for new channels')
.then(console.log)
.catch(console.error);Inherited from: GuildChannel
edit(options: GuildChannelEditOptions) : Promise<this>
Edits the channel.
// Edit a channel
channel.edit({ name: 'new-channel' })
.then(console.log)
.catch(console.error);Inherited from: GuildChannel
equals(channel: GuildChannel) : boolean
Checks if this channel has the same type, topic, position, name, overwrites, and id as another channel. In most cases, a simple channel.id === channel2.id will do, and is much faster too.
Inherited from: GuildChannel
fetchInvites(cache?: boolean = true) : Promise<Collection<string, Invite>>
Fetches a collection of invites to this guild channel. Resolves with a collection mapping invites by their codes.
Inherited from: BaseGuildTextChannel
fetchWebhooks() : Promise<Collection<Snowflake, Webhook>>
Fetches all webhooks for the channel.
// Fetch webhooks
channel.fetchWebhooks()
.then(hooks => console.log(`This channel has ${hooks.size} hooks`))
.catch(console.error);Inherited from: BaseGuildTextChannel
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 GuildBasedChannel & TextBasedChannel
Indicates whether this channel is text-based.
Inherited from: GuildChannel
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
lockPermissions() : Promise<this>
Locks in the permission overwrites from the parent channel.
Inherited from: GuildChannel
permissionsFor(memberOrRole: GuildMember | RolecheckAdmin?: boolean = true) : Readonly<PermissionsBitField>
Gets the overall set of permissions for a member or role in this channel, taking into account channel overwrites.
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: BaseGuildTextChannel
Sends a typing indicator in the channel.
// Start typing in a channel
channel.sendTyping();Returns: Resolves upon the typing status being sent *
Inherited from: BaseGuildTextChannel
setDefaultAutoArchiveDuration(defaultAutoArchiveDuration: ThreadAutoArchiveDurationreason?: string) : Promise<this>
Sets the default auto archive duration for all newly created threads in this channel.
Inherited from: BaseGuildTextChannel
Sets a new name for the guild channel.
// Set a new channel name
channel.setName('not_general')
.then(newChannel => console.log(`Channel's new name is ${newChannel.name}`))
.catch(console.error);Inherited from: GuildChannel
Sets whether this channel is flagged as NSFW.
Inherited from: BaseGuildTextChannel
setParent(channel: CategoryChannelResolvable | nulloptions?: SetParentOptions = {}) : Promise<this>
Sets the parent of this channel.
// Add a parent to a channel
message.channel.setParent('355908108431917066', { lockPermissions: false })
.then(channel => console.log(`New parent of ${message.channel.name}: ${channel.name}`))
.catch(console.error);Inherited from: GuildChannel
setPosition(position: numberoptions?: SetChannelPositionOptions) : Promise<this>
Sets a new position for the guild channel.
// Set a new channel position
channel.setPosition(2)
.then(newChannel => console.log(`Channel's new position is ${newChannel.position}`))
.catch(console.error);Inherited from: GuildChannel
Sets the rate limit per user (slowmode) for this channel.
Inherited from: BaseGuildTextChannel
Sets a new topic for the guild channel.
// Set a new channel topic
channel.setTopic('needs more rate limiting')
.then(newChannel => console.log(`Channel's new topic is ${newChannel.topic}`))
.catch(console.error);Inherited from: BaseGuildTextChannel
setType(type: ChannelType.GuildTextreason?: string) : Promise<TextChannel>
Sets the type of this channel. Only conversion between TextChannel and NewsChannel is supported.
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: GuildChannel