parent
dc68644b08
commit
fdf4a592d0
3 changed files with 25 additions and 1 deletions
|
@ -508,6 +508,20 @@ class Player extends EventEmitter {
|
||||||
return queue.repeatMode
|
return queue.repeatMode
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set loop mode, to play the queue again and again
|
||||||
|
* @param {Discord.Message} message
|
||||||
|
*/
|
||||||
|
async setLoopMode (message, enabled) {
|
||||||
|
// Get guild queue
|
||||||
|
const queue = this.queues.get(message.guild.id)
|
||||||
|
if (!queue) return this.emit('error', 'NotPlaying', message)
|
||||||
|
// Enable/Disable loop mode
|
||||||
|
queue.loopMode = enabled
|
||||||
|
// Return the repeat mode
|
||||||
|
return queue.loopMode
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Shuffle the queue of the server.
|
* Shuffle the queue of the server.
|
||||||
* @param {Discord.Message} message
|
* @param {Discord.Message} message
|
||||||
|
@ -697,7 +711,10 @@ class Player extends EventEmitter {
|
||||||
return this.emit('queueEnd', queue.firstMessage, queue)
|
return this.emit('queueEnd', queue.firstMessage, queue)
|
||||||
}
|
}
|
||||||
// if the track needs to be the next one
|
// if the track needs to be the next one
|
||||||
if (!queue.repeatMode && !firstPlay) queue.tracks.shift()
|
if (!queue.repeatMode && !firstPlay) {
|
||||||
|
const oldTrack = queue.tracks.shift()
|
||||||
|
if (queue.loopMode) queue.tracks.push(oldTrack) // add the track at the end of the queue
|
||||||
|
}
|
||||||
const track = queue.playing
|
const track = queue.playing
|
||||||
// Reset lastSkipped state
|
// Reset lastSkipped state
|
||||||
queue.lastSkipped = false
|
queue.lastSkipped = false
|
||||||
|
|
|
@ -60,6 +60,11 @@ class Queue extends EventEmitter {
|
||||||
* @type {boolean}
|
* @type {boolean}
|
||||||
*/
|
*/
|
||||||
this.repeatMode = false
|
this.repeatMode = false
|
||||||
|
/**
|
||||||
|
* Whether the loop mode is enabled.
|
||||||
|
* @type {boolean}
|
||||||
|
*/
|
||||||
|
this.loopMode = false
|
||||||
/**
|
/**
|
||||||
* Filters status
|
* Filters status
|
||||||
* @type {Filters}
|
* @type {Filters}
|
||||||
|
|
2
typings/index.d.ts
vendored
2
typings/index.d.ts
vendored
|
@ -35,6 +35,7 @@ declare module 'discord-player' {
|
||||||
public skip(message: Message): void;
|
public skip(message: Message): void;
|
||||||
public nowPlaying(message: Message): Track;
|
public nowPlaying(message: Message): Track;
|
||||||
public setRepeatMode(message: Message): boolean;
|
public setRepeatMode(message: Message): boolean;
|
||||||
|
public setLoopMode(message: Message, enabled: boolean): boolean
|
||||||
public shuffle(message: Message): Queue;
|
public shuffle(message: Message): Queue;
|
||||||
public remove(message: Message, trackOrPosition: Track|number): Track;
|
public remove(message: Message, trackOrPosition: Track|number): Track;
|
||||||
public createProgressBar(message: Message, progressBarOptions: ProgressBarOptions): string;
|
public createProgressBar(message: Message, progressBarOptions: ProgressBarOptions): string;
|
||||||
|
@ -94,6 +95,7 @@ declare module 'discord-player' {
|
||||||
public volume: number;
|
public volume: number;
|
||||||
public paused: boolean;
|
public paused: boolean;
|
||||||
public repeatMode: boolean;
|
public repeatMode: boolean;
|
||||||
|
public loopMode: boolean;
|
||||||
public filters: FiltersStatuses;
|
public filters: FiltersStatuses;
|
||||||
public firstMessage: Message;
|
public firstMessage: Message;
|
||||||
private additionalStreamTime: number;
|
private additionalStreamTime: number;
|
||||||
|
|
Loading…
Reference in a new issue