class VoiceChannel

export class VoiceChannel extends BaseGuildVoiceChannel

Represents a guild voice channel on Discord.

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

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

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

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

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

Bulk deletes given messages that are newer than two weeks.

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

clone() : Promise<this>

Clones this channel.

Inherited from: GuildChannel

createInvite() : Promise<Invite>

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
) : Promise<this>

Fetches this channel.

Inherited from: BaseChannel

fetchInvites(
cache?: boolean
) : Promise<Collection<string, Invite>>

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

isTextBased() : this is GuildBasedChannel & TextBasedChannel

Indicates whether this channel is .

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

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
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', { lockPermissions: false })
  .then(channel => console.log(`New parent of ${message.channel.name}: ${channel.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