class VoiceChannel

export class VoiceChannel extends BaseGuildVoiceChannel

Represents a guild voice channel on Discord.

appPermissions : Readonly<PermissionsBitField> | null

The computed permissions of the application in this channel, including overwrites. This is only present on channels received through an interaction's resolved data, and only when the application's bot user is in the guild.

Inherited from: BaseChannel

bitrate : number

The bitrate of this voice-based channel

Inherited from: BaseGuildVoiceChannel

readonly
client : Client<true>

The client that instantiated this

Inherited from: Base

readonly
createdAt : Date

The time the channel was created at

Inherited from: GuildChannel

readonly
createdTimestamp : number

The timestamp the channel was created at

Inherited from: GuildChannel

readonly
deletable : boolean

Whether the channel is deletable by the client user

Inherited from: GuildChannel

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

readonly
full : boolean

Checks if the voice-based channel is full

Inherited from: BaseGuildVoiceChannel

guild : Guild

The guild the channel is in

Inherited from: GuildChannel

guildId : Snowflake

The id of the guild the channel is in

Inherited from: GuildChannel

id : Snowflake

The channel's id

Inherited from: BaseChannel

readonly
joinable : boolean

Whether the channel is joinable by the client user

Inherited from: BaseGuildVoiceChannel

readonlyoptional
lastMessage? : Message

The Message object of the last message in the channel, if one was sent

Inherited from: BaseGuildVoiceChannel

optional
lastMessageId? : Snowflake

The last message id sent in the channel, if one was sent

Inherited from: BaseGuildVoiceChannel

readonly
manageable : boolean

Whether the channel is manageable by the client user

Inherited from: GuildChannel

readonly
members : Collection<Snowflake, GuildMember>

The members in this voice-based channel

Inherited from: BaseGuildVoiceChannel

A manager of the messages sent to this channel

Inherited from: BaseGuildVoiceChannel

name : string

The name of the guild channel

Inherited from: GuildChannel

nsfw : boolean

If the guild considers this channel NSFW

Inherited from: BaseGuildVoiceChannel

readonly
parent : CategoryChannel | null

The category parent of this channel

Inherited from: GuildChannel

parentId : Snowflake | null

The id of the category parent of this channel

Inherited from: GuildChannel

readonly
partial : false

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

The computed permissions of the user who invoked the interaction in this channel, including overwrites. This is only present on channels received through an interaction's resolved data.

Inherited from: BaseChannel

readonly
permissionsLocked : boolean | null

If the permissionOverwrites match the parent channel, null if no parent

Inherited from: GuildChannel

readonly
position : number

The position of the channel

Inherited from: GuildChannel

rateLimitPerUser : number | null

The rate limit per user (slowmode) for this channel in seconds

Inherited from: BaseGuildVoiceChannel

rawPosition : number

The raw position of the channel from Discord

Inherited from: GuildChannel

rtcRegion : string | null

The RTC region for this voice-based channel. This region is automatically selected if null.

Inherited from: BaseGuildVoiceChannel

readonly
speakable : boolean

Checks if the client has permission to send audio to the voice channel

The type of the channel

readonly
url : string

The URL to the channel

Inherited from: BaseChannel

userLimit : number

The maximum amount of users allowed in this channel.

Inherited from: BaseGuildVoiceChannel

videoQualityMode : VideoQualityMode | null

The camera video quality mode of the channel.

Inherited from: BaseGuildVoiceChannel

readonly
viewable : boolean

Whether the channel is viewable by the client user

Inherited from: GuildChannel

awaitMessageComponent() : Promise<MessageComponentInteraction>

Collects a single component interaction that passes the filter. The Promise will reject if the time expires.

Examples:
// 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: BaseGuildVoiceChannel

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.

Examples:
// 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: BaseGuildVoiceChannel

bulkDelete(
filterOld?: boolean = false
) : Promise<Array<Snowflake>>

Bulk deletes given messages up to 2 weeks old.

Examples:
// Bulk delete messages
channel.bulkDelete(5)
  .then(messages => console.log(`Bulk deleted ${messages.length} messages`))
  .catch(console.error);

Returns: Returns the deleted messages ids *

Inherited from: BaseGuildVoiceChannel

clone() : Promise<this>

Clones this channel.

Inherited from: GuildChannel

createInvite(
options?: InviteCreateOptions = {}
) : Promise<GuildInvite>

Creates an invite to this guild channel.

Examples:
// 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: BaseGuildVoiceChannel

createMessageCollector() : MessageCollector

Creates a Message Collector.

Examples:
// 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: BaseGuildVoiceChannel

createMessageComponentCollector() : InteractionCollector

Creates a component interaction collector.

Examples:
// 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: BaseGuildVoiceChannel

createWebhook() : Promise<Webhook>

Creates a webhook for the channel.

Examples:
// 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: BaseGuildVoiceChannel

delete(
reason?: string
) : Promise<this>

Deletes this channel.

Examples:
// Delete the channel
channel.delete('making room for new channels')
  .then(console.log)
  .catch(console.error);

Inherited from: GuildChannel

edit() : Promise<this>

Edits the channel.

Examples:
// 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

fetch(
force?: boolean = true
) : Promise<this>

Fetches this channel.

Inherited from: BaseChannel

fetchInvites(
cache?: boolean = true
) : Promise<Collection<string, GuildInvite>>

Fetches a collection of invites to this guild channel.

Inherited from: BaseGuildVoiceChannel

fetchWebhooks() : Promise<Collection<Snowflake, Webhook>>

Fetches all webhooks for the channel.

Examples:
// Fetch webhooks
channel.fetchWebhooks()
  .then(hooks => console.log(`This channel has ${hooks.size} hooks`))
  .catch(console.error);

Inherited from: BaseGuildVoiceChannel

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 | Role
checkAdmin?: boolean = true
) : Readonly<PermissionsBitField>

Gets the overall set of permissions for a member or role in this channel, taking into account channel overwrites.

Sends a message to this channel.

Examples:
// 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://github.com/discordjs.png']
})
  .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: BaseGuildVoiceChannel

sendSoundboardSound() : Promise<void>

Send a soundboard sound to a voice channel the user is connected to.

sendTyping() : Promise<void>

Sends a typing indicator in the channel.

Examples:
// Start typing in a channel
channel.sendTyping();

Returns: Resolves upon the typing status being sent *

Inherited from: BaseGuildVoiceChannel

setBitrate(
bitrate: number
reason?: string
) : Promise<VoiceChannel>

Sets the bitrate of the channel.

Examples:
// Set the bitrate of a voice channel
voiceChannel.setBitrate(48_000)
  .then(channel => console.log(`Set bitrate to ${channel.bitrate}bps for ${channel.name}`))
  .catch(console.error);

setName(
name: string
reason?: string
) : Promise<this>

Sets a new name for the guild channel.

Examples:
// 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

setNSFW(
nsfw?: boolean = true
reason?: string
) : Promise<this>

Sets whether this channel is flagged as NSFW.

Inherited from: BaseGuildVoiceChannel

setParent() : Promise<this>

Sets the parent of this channel.

Examples:
// Add a parent to a channel
message.channel.setParent('355908108431917066')
  .then(channel => console.log(`New parent of ${channel.name}: ${channel.parent.name}`))
  .catch(console.error);
// Move a channel and sync its permissions with the parent
message.channel.setParent('355908108431917066', { lockPermissions: true })
  .then(channel => console.log(`Moved ${message.channel.name} to ${channel.parent.name}`))
  .catch(console.error);

Inherited from: GuildChannel

setPosition() : Promise<this>

Sets a new position for the guild channel.

Examples:
// 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

setRateLimitPerUser(
rateLimitPerUser: number
reason?: string
) : Promise<this>

Sets the rate limit per user (slowmode) for this channel.

Inherited from: BaseGuildVoiceChannel

setRTCRegion(
rtcRegion: string
reason?: string
) : Promise<VoiceChannel>

Sets the RTC region of the channel.

Examples:
// Set the RTC region to sydney
voiceChannel.setRTCRegion('sydney');
// Remove a fixed region for this channel - let Discord decide automatically
voiceChannel.setRTCRegion(null, 'We want to let Discord decide.');

setUserLimit(
userLimit: number
reason?: string
) : Promise<VoiceChannel>

Sets the user limit of the channel.

Examples:
// Set the user limit of a voice channel
voiceChannel.setUserLimit(42)
  .then(channel => console.log(`Set user limit to ${channel.userLimit} for ${channel.name}`))
  .catch(console.error);

setVideoQualityMode(
videoQualityMode: VideoQualityMode
reason?: string
) : Promise<VoiceChannel>

Sets the camera video quality mode of the channel.

toJSON(
...props: Record<string, boolean | string>[]
) : unknown

Inherited from: Base

toString() : ChannelMention

When concatenated with a string, this automatically returns the channel's mention instead of the Channel object.

Examples:
// Logs: Hello from <#123456789012345678>!
console.log(`Hello from ${channel}!`);

Inherited from: GuildChannel

valueOf() : string

Inherited from: Base