Skip to main content
Version: 0.9.1

Abstract Class: BaseChannel

The base class for all structures.

Extends​

Extended by​

Constructors​

Constructor​

protected new BaseChannel(client, data): BaseChannel

Parameters​

ParameterType
clientClient
data{ } | { } | { } | { }

Returns​

BaseChannel

Overrides​

Base.constructor

Properties​

cachedAt​

cachedAt: number

Inherited from​

Base.cachedAt


client​

protected readonly client: Client

Inherited from​

Base.client


id​

readonly id: string

Inherited from​

Base.id


messages​

messages: MessageManager


type​

type: ChannelType

Methods​

_clone()​

_clone(): this

Helper to quickly clone a structure

Returns​

this

Inherited from​

Base._clone


awaitMessages()​

awaitMessages(options?): Promise<Collection<string, Message>>

Awaits messages in this channel that meet certain criteria.

Parameters​

ParameterTypeDescription
optionsMessageCollectorOptionsThe options for the collector.

Returns​

Promise<Collection<string, Message>>

A promise that resolves to a collection of messages.

Example​

// Await !vote messages
const filter = m => m.content.startsWith('!vote');
channel.awaitMessages({ filter, max: 4, time: 60000 })
.then(collected => console.log(collected.size))
.catch(console.error);

bulkDelete()​

bulkDelete(messages): Promise<void>

Bulk delete messages from this channel

Parameters​

ParameterTypeDescription
messagesMessageResolvable[]MessageResolvable to delete

Returns​

Promise<void>

Throws​

If the API request fails

Example​

// Delete messages by their ID's
await channel.bulkDelete(["MESSAGE_ID_1", "MESSAGE_ID_2", "MESSAGE_ID_3"]);
// Delete messages by their Message objects
await channel.bulkDelete([message1, message2, message3]);

createMessageCollector()​

createMessageCollector(options?): MessageCollector

Creates a MessageCollector to collect messages in this channel.

Parameters​

ParameterTypeDescription
options?MessageCollectorOptionsThe options for the collector.

Returns​

MessageCollector

The instantiated MessageCollector

Example​

const collector = channel.createMessageCollector({ filter: m => m.authorId === '123', time: 15000 });
collector.on('collect', m => console.log(`Collected ${m.content}`));
collector.on('end', collected => console.log(`Collected ${collected.size} items`));

delete()​

delete(): Promise<void>

Deletes this channel.

Returns​

Promise<void>

Throws​

If the API request fails

Example​

// Delete the channel
await channel.delete();

edit()​

edit(options): Promise<BaseChannel>

Edits this channel.

Parameters​

ParameterTypeDescription
optionsChannelEditOptionsThe fields to update

Returns​

Promise<BaseChannel>

BaseChannel

Throws​

If the API request fails

Example​

// Edit the channel's name
await channel.edit({name: "New Cool Name"});

equals()​

equals(other): boolean

Compares this object with another to see if they represent the same entity.

Parameters​

ParameterType
otherstring | Base

Returns​

boolean

Inherited from​

Base.equals


fetch()​

fetch(force?): Promise<BaseChannel>

Fetch this channel

Parameters​

ParameterTypeDefault valueDescription
forcebooleanfalseWhether to skip the cache check and force a direct API request. Defaults to false

Returns​

Promise<BaseChannel>

Throws​

If the API request fails

Example​

// Force fetch channel to update its data
await channel.fetch(true);

fetchMessages()​

fetchMessages(options?): Promise<Collection<string, Message>>

Fetches multiple messages from this channel.

Parameters​

ParameterTypeDescription
options?MessageFetchOptionsThe query parameters to filter the messages.

Returns​

Promise<Collection<string, Message>>

A Collection of Messages, keyed by their ID.

Throws​

If the API request fails

Example​

// Fetch the last 50 messages in the channel
const messages = await channel.fetchMessages({ limit: 50 });
console.log(`Fetched ${messages.size} messages`);
// Fetch messages before a specific message ID
const messages = await channel.fetchMessages({ before: "MESSAGE_ID" });
console.log(`Fetched ${messages.size} messages sent before the specified message`);
// Fetch messages after a specific message ID
const messages = await channel.fetchMessages({ after: "MESSAGE_ID" });
console.log(`Fetched ${messages.size} messages sent after the specified message`);
// Fetch messages around a specific message ID
const messages = await channel.fetchMessages({ around: "MESSAGE_ID", limit: 10 });
console.log(`Fetched ${messages.size} messages sent around the specified message`);

isDM()​

isDM(): this is DMChannel

Returns​

this is DMChannel


isGroup()​

isGroup(): this is GroupChannel

Returns​

this is GroupChannel


isText()​

isText(): this is TextChannel

Returns​

this is TextChannel


isVoice()​

isVoice(): this is VoiceChannel

Returns​

this is VoiceChannel


send()​

send(contentOrOptions): Promise<Message>

Sends a message to this channel.

Parameters​

ParameterTypeDescription
contentOrOptionsstring | MessageOptionsThe string content or message options payload.

Returns​

Promise<Message>

A promise that resolves to the sent Message.

Example​

await channel.send("Hello world!");
await channel.send({ content: "Here is an embed", embeds: [myEmbed] });

toString()​

toString(): string

Returns the UUID string when the object is cast to a string.

Returns​

string

Inherited from​

Base.toString