Classes

Queue

Class representing a queue.

Signature

export declare class Queue

JSDoc

@classQueue

Properties

readonly utils: QueueUtils;

The queue utils instance.

@type{QueueUtils}@readonly
sizeGetter
get size(): number;

Get the track size of the queue.

Returns

The track size of the queue.

Examples

const queue = player.queue;

console.log(queue.size); // 0
queue.add(track);

console.log(queue.size); // 1
queue.add([track1, track2]);

console.log(queue.size); // 3
queue.shift();
console.log(queue.size); // 2

queue.clear();
console.log(queue.size); // 0
@type{number}@readonly
get totalSize(): number;

Get the total track size of the queue (Includes the current track).

Returns

The total track size of the queue.

Examples

const queue = player.queue;

console.log(queue.totalSize); // 0
queue.add(track);

console.log(queue.totalSize); // 1
queue.add([track1, track2]);

console.log(queue.totalSize); // 3
queue.shift();
console.log(queue.totalSize); // 2

queue.clear();
console.log(queue.totalSize); // 0
@type{number}@readonly

Methods

isEmpty(): boolean;

Check if the queue is empty.

Returns

True if the queue is empty.

Examples

const queue = player.queue;

console.log(queue.isEmpty()); // true
queue.add(track);

console.log(queue.isEmpty()); // false
queue.clear();

console.log(queue.isEmpty()); // true
@type{boolean}@readonly
previous(remove?: boolean): Promise<TrackStructure | null>;

Get the previous track of the queue.

Parameters

remove
Whether to remove the track from the previous queue.

Returns

The previous track of the queue.

Examples

const queue = player.queue;

console.log(await queue.previous()); // null
queue.add(track);
queue.add(track2);

console.log(await queue.previous()); // track
console.log(await queue.previous(true)); // track and remove it from the previous tracks
add(track: TrackResolvableStructure | TrackResolvableStructure[], position?: number): Promise<this>;

Add a track or tracks to the queue.

Parameters

track
The track or tracks to add.
position
The position to add the track or tracks.

Returns

The queue instance.

Examples

const queue = player.queue;

console.log(queue.size); // 0

await queue.add(track);
console.log(queue.size); // 1

await queue.add([track1, track2]);
console.log(queue.size); // 3

await queue.add(track3, 1);
console.log(queue.size); // 4
console.log(queue.tracks); // [track1, track3, track2, track]
shift(): Promise<TrackResolvableStructure | null>;

Get the first track of the queue.

Returns

The first track of the queue.

Examples

const queue = player.queue;

console.log(await queue.shift()); // null
await queue.add(track);

console.log(await queue.shift()); // track
await queue.add(track2);
unshift(...tracks: TrackResolvableStructure[]): Promise<this>;

Add tracks to the beginning of the queue.

Parameters

tracks
The tracks to add.

Returns

The queue instance.

Examples

const queue = player.queue;

console.log(queue.size); // 0
await queue.unshift(track);

console.log(queue.size); // 1
await queue.unshift(track1, track2);

console.log(queue.size); // 3
console.log(queue.tracks); // [track1, track2, track]
shuffle(): Promise<this>;

Shuffle the queue.

Returns

The queue instance.

Examples

const queue = player.queue;

console.log(queue.size); // 0
await queue.add(track);
await queue.add(track1, track2);

console.log(queue.size); // 3
console.log(queue.tracks); // [track, track1, track2]

await queue.shuffle();
console.log(queue.tracks); // [track2, track, track1]
clear(): Promise<this>;

Clear the queue.

Returns

The queue instance.

Examples

const queue = player.queue;

await queue.add(track1, track2);
console.log(queue.size); // 2

await queue.clear();
console.log(queue.size); // 0
@descriptionEmpties the upcoming tracks and the history and drops the stored queue. The current track and playback are left untouched.
move(track: TrackResolvableStructure, to: number): Promise<this>;

Move a track to a specific position in the queue.

Parameters

track
The track to move.
to
The position to move.

Returns

The queue instance.

Examples

const queue = player.queue;
await queue.add(track);
await queue.add(track1);
await queue.add(track2);

console.log(queue.tracks); // [track, track1, track2]
await queue.move(track1, 0);
console.log(queue.tracks); // [track1, track, track2]
splice(start: number, deleteCount: number, tracks?: TrackResolvableStructure | TrackResolvableStructure[]): Promise<TrackResolvableStructure[]>;

Delete tracks from the queue.

Parameters

start
The start index.
deleteCount
The number of tracks to delete.
tracks
The tracks to add.

Returns

The spliced tracks.

Examples

const queue = player.queue;
await queue.add(track);
await queue.add(track1);
await queue.add(track2);

console.log(queue.tracks); // [track, track1, track2]
await queue.splice(1, 1);
console.log(queue.tracks); // [track, track2]
toJSON(): QueueJSON;

Convert the queue to a JSON object.

Returns

The queue JSON object.

Examples

const queue = player.queue;
await queue.add(track);

console.log(queue.toJSON()); // { tracks: [{ ... }, { ... }], history: [], current: null }