ziplayer 0.0.9 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +61 -30
- package/dist/extensions/BaseExtension.d.ts +9 -3
- package/dist/extensions/BaseExtension.d.ts.map +1 -1
- package/dist/extensions/BaseExtension.js.map +1 -1
- package/dist/structures/Player.d.ts +294 -2
- package/dist/structures/Player.d.ts.map +1 -1
- package/dist/structures/Player.js +586 -88
- package/dist/structures/Player.js.map +1 -1
- package/dist/structures/PlayerManager.d.ts +166 -2
- package/dist/structures/PlayerManager.d.ts.map +1 -1
- package/dist/structures/PlayerManager.js +182 -8
- package/dist/structures/PlayerManager.js.map +1 -1
- package/dist/structures/Queue.d.ts +193 -2
- package/dist/structures/Queue.d.ts.map +1 -1
- package/dist/structures/Queue.js +193 -2
- package/dist/structures/Queue.js.map +1 -1
- package/dist/types/index.d.ts +327 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/timeout.d.ts +9 -0
- package/dist/utils/timeout.d.ts.map +1 -0
- package/dist/utils/timeout.js +14 -0
- package/dist/utils/timeout.js.map +1 -0
- package/package.json +1 -1
- package/src/extensions/BaseExtension.ts +35 -10
- package/src/structures/Player.ts +615 -90
- package/src/structures/PlayerManager.ts +189 -8
- package/src/structures/Queue.ts +196 -2
- package/src/types/index.ts +343 -4
- package/src/utils/timeout.ts +10 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlayerManager.js","sourceRoot":"","sources":["../../src/structures/PlayerManager.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"PlayerManager.js","sourceRoot":"","sources":["../../src/structures/PlayerManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,39 @@
|
|
|
1
1
|
import { Track, LoopMode } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* Manages the track queue for a player.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* // Basic queue operations
|
|
7
|
+
* const queue = player.queue;
|
|
8
|
+
*
|
|
9
|
+
* // Add single track
|
|
10
|
+
* queue.add(track);
|
|
11
|
+
*
|
|
12
|
+
* // Add multiple tracks
|
|
13
|
+
* queue.add([track1, track2, track3]);
|
|
14
|
+
*
|
|
15
|
+
* // Queue controls
|
|
16
|
+
* queue.shuffle(); // Randomize order
|
|
17
|
+
* queue.clear(); // Remove all tracks
|
|
18
|
+
* queue.autoPlay(true); // Enable auto-play
|
|
19
|
+
*
|
|
20
|
+
* // Get queue information
|
|
21
|
+
* console.log(`Queue length: ${queue.length}`);
|
|
22
|
+
* console.log(`Current track: ${queue.current?.title}`);
|
|
23
|
+
* console.log(`Is empty: ${queue.isEmpty}`);
|
|
24
|
+
* console.log(`Is playing: ${queue.isPlaying}`);
|
|
25
|
+
*
|
|
26
|
+
* // Loop modes
|
|
27
|
+
* queue.setLoopMode("track"); // Loop current track
|
|
28
|
+
* queue.setLoopMode("queue"); // Loop entire queue
|
|
29
|
+
* queue.setLoopMode("off"); // No loop
|
|
30
|
+
*
|
|
31
|
+
* // Remove specific track
|
|
32
|
+
* const removed = queue.remove(0); // Remove first track
|
|
33
|
+
* if (removed) {
|
|
34
|
+
* console.log(`Removed: ${removed.title}`);
|
|
35
|
+
* }
|
|
36
|
+
*/
|
|
2
37
|
export declare class Queue {
|
|
3
38
|
private tracks;
|
|
4
39
|
private current;
|
|
@@ -7,31 +42,187 @@ export declare class Queue {
|
|
|
7
42
|
private _autoPlay;
|
|
8
43
|
private _loop;
|
|
9
44
|
private willnext;
|
|
45
|
+
/**
|
|
46
|
+
* Add track(s) to the queue
|
|
47
|
+
*
|
|
48
|
+
* @param {Track | Track[]} track - Track or array of tracks to add
|
|
49
|
+
* @example
|
|
50
|
+
* queue.add(track);
|
|
51
|
+
* queue.add([track1, track2, track3]);
|
|
52
|
+
*/
|
|
10
53
|
add(track: Track): void;
|
|
54
|
+
/**
|
|
55
|
+
* Add multiple tracks to the queue
|
|
56
|
+
*
|
|
57
|
+
* @param {Track[]} tracks - Tracks to add
|
|
58
|
+
* @example
|
|
59
|
+
* queue.addMultiple([track1, track2, track3]);
|
|
60
|
+
*/
|
|
11
61
|
addMultiple(tracks: Track[]): void;
|
|
12
|
-
/**
|
|
62
|
+
/**
|
|
63
|
+
* Insert a track at a specific upcoming position (0 = next)
|
|
64
|
+
*
|
|
65
|
+
* @param {Track} track - Track to insert
|
|
66
|
+
* @param {number} index - Index to insert the track at
|
|
67
|
+
* @example
|
|
68
|
+
* queue.insert(track, 0);
|
|
69
|
+
*/
|
|
13
70
|
insert(track: Track, index: number): void;
|
|
14
|
-
/**
|
|
71
|
+
/**
|
|
72
|
+
* Insert multiple tracks at a specific upcoming position, preserving order
|
|
73
|
+
*
|
|
74
|
+
* @param {Track[]} tracks - Tracks to insert
|
|
75
|
+
* @param {number} index - Index to insert the tracks at
|
|
76
|
+
* @example
|
|
77
|
+
* queue.insertMultiple([track1, track2, track3], 0);
|
|
78
|
+
*/
|
|
15
79
|
insertMultiple(tracks: Track[], index: number): void;
|
|
80
|
+
/**
|
|
81
|
+
* Remove a track from the queue
|
|
82
|
+
*
|
|
83
|
+
* @param {number} index - Index of track to remove
|
|
84
|
+
* @returns {Track | null} Removed track or null
|
|
85
|
+
* @example
|
|
86
|
+
* const removed = queue.remove(0);
|
|
87
|
+
* console.log(`Removed: ${removed?.title}`);
|
|
88
|
+
*/
|
|
16
89
|
remove(index: number): Track | null;
|
|
90
|
+
/**
|
|
91
|
+
* Get the next track in the queue
|
|
92
|
+
*
|
|
93
|
+
* @param {boolean} ignoreLoop - Ignore the loop mode
|
|
94
|
+
* @returns {Track | null} The next track or null
|
|
95
|
+
* @example
|
|
96
|
+
* const nextTrack = queue.next();
|
|
97
|
+
* console.log(`Next track: ${nextTrack?.title}`);
|
|
98
|
+
*/
|
|
17
99
|
next(ignoreLoop?: boolean): Track | null;
|
|
100
|
+
/**
|
|
101
|
+
* Clear all tracks from the queue
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* queue.clear();
|
|
105
|
+
*/
|
|
18
106
|
clear(): void;
|
|
107
|
+
/**
|
|
108
|
+
* Enable or disable auto-play
|
|
109
|
+
*
|
|
110
|
+
* @param {boolean} value - Enable/disable auto-play
|
|
111
|
+
* @returns {boolean} Current auto-play state
|
|
112
|
+
* @example
|
|
113
|
+
* queue.autoPlay(true);
|
|
114
|
+
* queue.autoPlay(); // Get current auto-play state
|
|
115
|
+
*/
|
|
19
116
|
autoPlay(value?: boolean): boolean;
|
|
117
|
+
/**
|
|
118
|
+
* Set the loop mode
|
|
119
|
+
*
|
|
120
|
+
* @param {LoopMode} mode - Loop mode to set
|
|
121
|
+
* @returns {LoopMode} The loop mode
|
|
122
|
+
* @example
|
|
123
|
+
* queue.loop("track");
|
|
124
|
+
*/
|
|
20
125
|
loop(mode?: LoopMode): LoopMode;
|
|
126
|
+
/**
|
|
127
|
+
* Shuffle the queue
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* queue.shuffle();
|
|
131
|
+
*/
|
|
21
132
|
shuffle(): void;
|
|
133
|
+
/**
|
|
134
|
+
* Get the size of the queue
|
|
135
|
+
*
|
|
136
|
+
* @returns {number} The size of the queue
|
|
137
|
+
* @example
|
|
138
|
+
* const size = queue.size;
|
|
139
|
+
* console.log(`Queue size: ${size}`);
|
|
140
|
+
*/
|
|
22
141
|
get size(): number;
|
|
142
|
+
/**
|
|
143
|
+
* Check if the queue is empty
|
|
144
|
+
*
|
|
145
|
+
* @returns {boolean} True if the queue is empty
|
|
146
|
+
* @example
|
|
147
|
+
* const empty = queue.isEmpty;
|
|
148
|
+
* console.log(`Queue is empty: ${empty}`);
|
|
149
|
+
*/
|
|
23
150
|
get isEmpty(): boolean;
|
|
151
|
+
/**
|
|
152
|
+
* Get the current track
|
|
153
|
+
*
|
|
154
|
+
* @returns {Track | null} The current track or null
|
|
155
|
+
* @example
|
|
156
|
+
* const currentTrack = queue.currentTrack;
|
|
157
|
+
* console.log(`Current track: ${currentTrack?.title}`);
|
|
158
|
+
*/
|
|
24
159
|
get currentTrack(): Track | null;
|
|
160
|
+
/**
|
|
161
|
+
* Get the previous tracks
|
|
162
|
+
*
|
|
163
|
+
* @returns {Track[]} The previous tracks
|
|
164
|
+
* @example
|
|
165
|
+
* const previousTracks = queue.previousTracks;
|
|
166
|
+
* console.log(`Previous tracks: ${previousTracks.length}`);
|
|
167
|
+
*/
|
|
25
168
|
get previousTracks(): Track[];
|
|
169
|
+
/**
|
|
170
|
+
* Get the next track
|
|
171
|
+
*
|
|
172
|
+
* @returns {Track | null} The next track or null
|
|
173
|
+
* @example
|
|
174
|
+
* const nextTrack = queue.nextTrack;
|
|
175
|
+
* console.log(`Next track: ${nextTrack?.title}`);
|
|
176
|
+
*/
|
|
26
177
|
get nextTrack(): Track | null;
|
|
27
178
|
/**
|
|
28
179
|
* Move back to the previously played track.
|
|
29
180
|
* Makes the current track the next upcoming track, then sets previous as current.
|
|
181
|
+
*
|
|
182
|
+
* @returns {Track | null} The previous track or null
|
|
183
|
+
* @example
|
|
184
|
+
* const previousTrack = queue.previous();
|
|
185
|
+
* console.log(`Previous track: ${previousTrack?.title}`);
|
|
30
186
|
*/
|
|
31
187
|
previous(): Track | null;
|
|
188
|
+
/**
|
|
189
|
+
* Get the next track
|
|
190
|
+
*
|
|
191
|
+
* @param {Track} track - The next track
|
|
192
|
+
* @returns {Track | null} The next track or null
|
|
193
|
+
* @example
|
|
194
|
+
* const nextTrack = queue.willNextTrack();
|
|
195
|
+
* console.log(`Next track: ${nextTrack?.title}`);
|
|
196
|
+
*/
|
|
32
197
|
willNextTrack(track?: Track): Track | null;
|
|
198
|
+
/**
|
|
199
|
+
* Get the related tracks
|
|
200
|
+
*
|
|
201
|
+
* @param {Track[]} track - The related tracks
|
|
202
|
+
* @returns {Track[] | null} The related tracks or null
|
|
203
|
+
* @example
|
|
204
|
+
* const relatedTracks = queue.relatedTracks();
|
|
205
|
+
* console.log(`Related tracks: ${relatedTracks?.length}`);
|
|
206
|
+
*/
|
|
33
207
|
relatedTracks(track?: Track[]): Track[] | null;
|
|
208
|
+
/**
|
|
209
|
+
* Get the tracks
|
|
210
|
+
*
|
|
211
|
+
* @returns {Track[]} The tracks
|
|
212
|
+
* @example
|
|
213
|
+
* const tracks = queue.getTracks();
|
|
214
|
+
* console.log(`Tracks: ${tracks.length}`);
|
|
215
|
+
*/
|
|
34
216
|
getTracks(): Track[];
|
|
217
|
+
/**
|
|
218
|
+
* Get a track at a specific index
|
|
219
|
+
*
|
|
220
|
+
* @param {number} index - The index of the track
|
|
221
|
+
* @returns {Track | null} The track or null
|
|
222
|
+
* @example
|
|
223
|
+
* const track = queue.getTrack(0);
|
|
224
|
+
* console.log(`Track: ${track?.title}`);
|
|
225
|
+
*/
|
|
35
226
|
getTrack(index: number): Track | null;
|
|
36
227
|
}
|
|
37
228
|
//# sourceMappingURL=Queue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Queue.d.ts","sourceRoot":"","sources":["../../src/structures/Queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE3C,qBAAa,KAAK;IACjB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,QAAQ,CAAsB;IAEtC,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAIvB,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;IAIlC
|
|
1
|
+
{"version":3,"file":"Queue.d.ts","sourceRoot":"","sources":["../../src/structures/Queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBAAa,KAAK;IACjB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,QAAQ,CAAsB;IAEtC;;;;;;;OAOG;IACH,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAIvB;;;;;;OAMG;IACH,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;IAIlC;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAiBzC;;;;;;;OAOG;IACH,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAkBpD;;;;;;;;OAQG;IAEH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAKnC;;;;;;;;OAQG;IACH,IAAI,CAAC,UAAU,UAAQ,GAAG,KAAK,GAAG,IAAI;IAmBtC;;;;;OAKG;IACH,KAAK,IAAI,IAAI;IAIb;;;;;;;;OAQG;IAEH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO;IAOlC;;;;;;;OAOG;IACH,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ;IAO/B;;;;;OAKG;IAEH,OAAO,IAAI,IAAI;IAOf;;;;;;;OAOG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;;;OAOG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;;;;OAOG;IACH,IAAI,YAAY,IAAI,KAAK,GAAG,IAAI,CAE/B;IAED;;;;;;;OAOG;IACH,IAAI,cAAc,IAAI,KAAK,EAAE,CAE5B;IAED;;;;;;;OAOG;IACH,IAAI,SAAS,IAAI,KAAK,GAAG,IAAI,CAE5B;IAED;;;;;;;;OAQG;IACH,QAAQ,IAAI,KAAK,GAAG,IAAI;IASxB;;;;;;;;OAQG;IACH,aAAa,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI;IAO1C;;;;;;;;OAQG;IACH,aAAa,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI;IAO9C;;;;;;;OAOG;IACH,SAAS,IAAI,KAAK,EAAE;IAIpB;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;CAGrC"}
|
package/dist/structures/Queue.js
CHANGED
|
@@ -1,6 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Queue = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Manages the track queue for a player.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* // Basic queue operations
|
|
9
|
+
* const queue = player.queue;
|
|
10
|
+
*
|
|
11
|
+
* // Add single track
|
|
12
|
+
* queue.add(track);
|
|
13
|
+
*
|
|
14
|
+
* // Add multiple tracks
|
|
15
|
+
* queue.add([track1, track2, track3]);
|
|
16
|
+
*
|
|
17
|
+
* // Queue controls
|
|
18
|
+
* queue.shuffle(); // Randomize order
|
|
19
|
+
* queue.clear(); // Remove all tracks
|
|
20
|
+
* queue.autoPlay(true); // Enable auto-play
|
|
21
|
+
*
|
|
22
|
+
* // Get queue information
|
|
23
|
+
* console.log(`Queue length: ${queue.length}`);
|
|
24
|
+
* console.log(`Current track: ${queue.current?.title}`);
|
|
25
|
+
* console.log(`Is empty: ${queue.isEmpty}`);
|
|
26
|
+
* console.log(`Is playing: ${queue.isPlaying}`);
|
|
27
|
+
*
|
|
28
|
+
* // Loop modes
|
|
29
|
+
* queue.setLoopMode("track"); // Loop current track
|
|
30
|
+
* queue.setLoopMode("queue"); // Loop entire queue
|
|
31
|
+
* queue.setLoopMode("off"); // No loop
|
|
32
|
+
*
|
|
33
|
+
* // Remove specific track
|
|
34
|
+
* const removed = queue.remove(0); // Remove first track
|
|
35
|
+
* if (removed) {
|
|
36
|
+
* console.log(`Removed: ${removed.title}`);
|
|
37
|
+
* }
|
|
38
|
+
*/
|
|
4
39
|
class Queue {
|
|
5
40
|
constructor() {
|
|
6
41
|
this.tracks = [];
|
|
@@ -11,13 +46,35 @@ class Queue {
|
|
|
11
46
|
this._loop = "off";
|
|
12
47
|
this.willnext = null;
|
|
13
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Add track(s) to the queue
|
|
51
|
+
*
|
|
52
|
+
* @param {Track | Track[]} track - Track or array of tracks to add
|
|
53
|
+
* @example
|
|
54
|
+
* queue.add(track);
|
|
55
|
+
* queue.add([track1, track2, track3]);
|
|
56
|
+
*/
|
|
14
57
|
add(track) {
|
|
15
58
|
this.tracks.push(track);
|
|
16
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Add multiple tracks to the queue
|
|
62
|
+
*
|
|
63
|
+
* @param {Track[]} tracks - Tracks to add
|
|
64
|
+
* @example
|
|
65
|
+
* queue.addMultiple([track1, track2, track3]);
|
|
66
|
+
*/
|
|
17
67
|
addMultiple(tracks) {
|
|
18
68
|
this.tracks.push(...tracks);
|
|
19
69
|
}
|
|
20
|
-
/**
|
|
70
|
+
/**
|
|
71
|
+
* Insert a track at a specific upcoming position (0 = next)
|
|
72
|
+
*
|
|
73
|
+
* @param {Track} track - Track to insert
|
|
74
|
+
* @param {number} index - Index to insert the track at
|
|
75
|
+
* @example
|
|
76
|
+
* queue.insert(track, 0);
|
|
77
|
+
*/
|
|
21
78
|
insert(track, index) {
|
|
22
79
|
if (!Number.isFinite(index)) {
|
|
23
80
|
this.tracks.push(track);
|
|
@@ -34,7 +91,14 @@ class Queue {
|
|
|
34
91
|
}
|
|
35
92
|
this.tracks.splice(i, 0, track);
|
|
36
93
|
}
|
|
37
|
-
/**
|
|
94
|
+
/**
|
|
95
|
+
* Insert multiple tracks at a specific upcoming position, preserving order
|
|
96
|
+
*
|
|
97
|
+
* @param {Track[]} tracks - Tracks to insert
|
|
98
|
+
* @param {number} index - Index to insert the tracks at
|
|
99
|
+
* @example
|
|
100
|
+
* queue.insertMultiple([track1, track2, track3], 0);
|
|
101
|
+
*/
|
|
38
102
|
insertMultiple(tracks, index) {
|
|
39
103
|
if (!Array.isArray(tracks) || tracks.length === 0)
|
|
40
104
|
return;
|
|
@@ -53,11 +117,29 @@ class Queue {
|
|
|
53
117
|
}
|
|
54
118
|
this.tracks.splice(i, 0, ...tracks);
|
|
55
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* Remove a track from the queue
|
|
122
|
+
*
|
|
123
|
+
* @param {number} index - Index of track to remove
|
|
124
|
+
* @returns {Track | null} Removed track or null
|
|
125
|
+
* @example
|
|
126
|
+
* const removed = queue.remove(0);
|
|
127
|
+
* console.log(`Removed: ${removed?.title}`);
|
|
128
|
+
*/
|
|
56
129
|
remove(index) {
|
|
57
130
|
if (index < 0 || index >= this.tracks.length)
|
|
58
131
|
return null;
|
|
59
132
|
return this.tracks.splice(index, 1)[0];
|
|
60
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* Get the next track in the queue
|
|
136
|
+
*
|
|
137
|
+
* @param {boolean} ignoreLoop - Ignore the loop mode
|
|
138
|
+
* @returns {Track | null} The next track or null
|
|
139
|
+
* @example
|
|
140
|
+
* const nextTrack = queue.next();
|
|
141
|
+
* console.log(`Next track: ${nextTrack?.title}`);
|
|
142
|
+
*/
|
|
61
143
|
next(ignoreLoop = false) {
|
|
62
144
|
if (this.current) {
|
|
63
145
|
if (this._loop === "track" && !ignoreLoop) {
|
|
@@ -76,45 +158,119 @@ class Queue {
|
|
|
76
158
|
}
|
|
77
159
|
return this.current;
|
|
78
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* Clear all tracks from the queue
|
|
163
|
+
*
|
|
164
|
+
* @example
|
|
165
|
+
* queue.clear();
|
|
166
|
+
*/
|
|
79
167
|
clear() {
|
|
80
168
|
this.tracks = [];
|
|
81
169
|
}
|
|
170
|
+
/**
|
|
171
|
+
* Enable or disable auto-play
|
|
172
|
+
*
|
|
173
|
+
* @param {boolean} value - Enable/disable auto-play
|
|
174
|
+
* @returns {boolean} Current auto-play state
|
|
175
|
+
* @example
|
|
176
|
+
* queue.autoPlay(true);
|
|
177
|
+
* queue.autoPlay(); // Get current auto-play state
|
|
178
|
+
*/
|
|
82
179
|
autoPlay(value) {
|
|
83
180
|
if (typeof value !== "undefined") {
|
|
84
181
|
this._autoPlay = value;
|
|
85
182
|
}
|
|
86
183
|
return this._autoPlay;
|
|
87
184
|
}
|
|
185
|
+
/**
|
|
186
|
+
* Set the loop mode
|
|
187
|
+
*
|
|
188
|
+
* @param {LoopMode} mode - Loop mode to set
|
|
189
|
+
* @returns {LoopMode} The loop mode
|
|
190
|
+
* @example
|
|
191
|
+
* queue.loop("track");
|
|
192
|
+
*/
|
|
88
193
|
loop(mode) {
|
|
89
194
|
if (mode) {
|
|
90
195
|
this._loop = mode;
|
|
91
196
|
}
|
|
92
197
|
return this._loop;
|
|
93
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* Shuffle the queue
|
|
201
|
+
*
|
|
202
|
+
* @example
|
|
203
|
+
* queue.shuffle();
|
|
204
|
+
*/
|
|
94
205
|
shuffle() {
|
|
95
206
|
for (let i = this.tracks.length - 1; i > 0; i--) {
|
|
96
207
|
const j = Math.floor(Math.random() * (i + 1));
|
|
97
208
|
[this.tracks[i], this.tracks[j]] = [this.tracks[j], this.tracks[i]];
|
|
98
209
|
}
|
|
99
210
|
}
|
|
211
|
+
/**
|
|
212
|
+
* Get the size of the queue
|
|
213
|
+
*
|
|
214
|
+
* @returns {number} The size of the queue
|
|
215
|
+
* @example
|
|
216
|
+
* const size = queue.size;
|
|
217
|
+
* console.log(`Queue size: ${size}`);
|
|
218
|
+
*/
|
|
100
219
|
get size() {
|
|
101
220
|
return this.tracks.length;
|
|
102
221
|
}
|
|
222
|
+
/**
|
|
223
|
+
* Check if the queue is empty
|
|
224
|
+
*
|
|
225
|
+
* @returns {boolean} True if the queue is empty
|
|
226
|
+
* @example
|
|
227
|
+
* const empty = queue.isEmpty;
|
|
228
|
+
* console.log(`Queue is empty: ${empty}`);
|
|
229
|
+
*/
|
|
103
230
|
get isEmpty() {
|
|
104
231
|
return this.tracks.length === 0;
|
|
105
232
|
}
|
|
233
|
+
/**
|
|
234
|
+
* Get the current track
|
|
235
|
+
*
|
|
236
|
+
* @returns {Track | null} The current track or null
|
|
237
|
+
* @example
|
|
238
|
+
* const currentTrack = queue.currentTrack;
|
|
239
|
+
* console.log(`Current track: ${currentTrack?.title}`);
|
|
240
|
+
*/
|
|
106
241
|
get currentTrack() {
|
|
107
242
|
return this.current;
|
|
108
243
|
}
|
|
244
|
+
/**
|
|
245
|
+
* Get the previous tracks
|
|
246
|
+
*
|
|
247
|
+
* @returns {Track[]} The previous tracks
|
|
248
|
+
* @example
|
|
249
|
+
* const previousTracks = queue.previousTracks;
|
|
250
|
+
* console.log(`Previous tracks: ${previousTracks.length}`);
|
|
251
|
+
*/
|
|
109
252
|
get previousTracks() {
|
|
110
253
|
return [...this.history];
|
|
111
254
|
}
|
|
255
|
+
/**
|
|
256
|
+
* Get the next track
|
|
257
|
+
*
|
|
258
|
+
* @returns {Track | null} The next track or null
|
|
259
|
+
* @example
|
|
260
|
+
* const nextTrack = queue.nextTrack;
|
|
261
|
+
* console.log(`Next track: ${nextTrack?.title}`);
|
|
262
|
+
*/
|
|
112
263
|
get nextTrack() {
|
|
113
264
|
return this.tracks[0] || null;
|
|
114
265
|
}
|
|
115
266
|
/**
|
|
116
267
|
* Move back to the previously played track.
|
|
117
268
|
* Makes the current track the next upcoming track, then sets previous as current.
|
|
269
|
+
*
|
|
270
|
+
* @returns {Track | null} The previous track or null
|
|
271
|
+
* @example
|
|
272
|
+
* const previousTrack = queue.previous();
|
|
273
|
+
* console.log(`Previous track: ${previousTrack?.title}`);
|
|
118
274
|
*/
|
|
119
275
|
previous() {
|
|
120
276
|
if (this.history.length === 0)
|
|
@@ -125,21 +281,56 @@ class Queue {
|
|
|
125
281
|
this.current = this.history.pop() || null;
|
|
126
282
|
return this.current;
|
|
127
283
|
}
|
|
284
|
+
/**
|
|
285
|
+
* Get the next track
|
|
286
|
+
*
|
|
287
|
+
* @param {Track} track - The next track
|
|
288
|
+
* @returns {Track | null} The next track or null
|
|
289
|
+
* @example
|
|
290
|
+
* const nextTrack = queue.willNextTrack();
|
|
291
|
+
* console.log(`Next track: ${nextTrack?.title}`);
|
|
292
|
+
*/
|
|
128
293
|
willNextTrack(track) {
|
|
129
294
|
if (track) {
|
|
130
295
|
this.willnext = track;
|
|
131
296
|
}
|
|
132
297
|
return this.willnext;
|
|
133
298
|
}
|
|
299
|
+
/**
|
|
300
|
+
* Get the related tracks
|
|
301
|
+
*
|
|
302
|
+
* @param {Track[]} track - The related tracks
|
|
303
|
+
* @returns {Track[] | null} The related tracks or null
|
|
304
|
+
* @example
|
|
305
|
+
* const relatedTracks = queue.relatedTracks();
|
|
306
|
+
* console.log(`Related tracks: ${relatedTracks?.length}`);
|
|
307
|
+
*/
|
|
134
308
|
relatedTracks(track) {
|
|
135
309
|
if (track) {
|
|
136
310
|
this.related = track;
|
|
137
311
|
}
|
|
138
312
|
return this.related;
|
|
139
313
|
}
|
|
314
|
+
/**
|
|
315
|
+
* Get the tracks
|
|
316
|
+
*
|
|
317
|
+
* @returns {Track[]} The tracks
|
|
318
|
+
* @example
|
|
319
|
+
* const tracks = queue.getTracks();
|
|
320
|
+
* console.log(`Tracks: ${tracks.length}`);
|
|
321
|
+
*/
|
|
140
322
|
getTracks() {
|
|
141
323
|
return [...this.tracks];
|
|
142
324
|
}
|
|
325
|
+
/**
|
|
326
|
+
* Get a track at a specific index
|
|
327
|
+
*
|
|
328
|
+
* @param {number} index - The index of the track
|
|
329
|
+
* @returns {Track | null} The track or null
|
|
330
|
+
* @example
|
|
331
|
+
* const track = queue.getTrack(0);
|
|
332
|
+
* console.log(`Track: ${track?.title}`);
|
|
333
|
+
*/
|
|
143
334
|
getTrack(index) {
|
|
144
335
|
return this.tracks[index] || null;
|
|
145
336
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Queue.js","sourceRoot":"","sources":["../../src/structures/Queue.ts"],"names":[],"mappings":";;;AAEA,MAAa,KAAK;IAAlB;QACS,WAAM,GAAY,EAAE,CAAC;QACrB,YAAO,GAAiB,IAAI,CAAC;QAC7B,YAAO,GAAY,EAAE,CAAC;QACtB,YAAO,GAAY,EAAE,CAAC;QACtB,cAAS,GAAG,KAAK,CAAC;QAClB,UAAK,GAAa,KAAK,CAAC;QACxB,aAAQ,GAAiB,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"Queue.js","sourceRoot":"","sources":["../../src/structures/Queue.ts"],"names":[],"mappings":"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"}
|