magmastream 2.9.0-dev.46 → 2.9.0-dev.48
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/dist/index.d.ts +1055 -1017
- package/dist/statestorage/JsonQueue.js +242 -236
- package/dist/statestorage/MemoryQueue.js +207 -202
- package/dist/statestorage/RedisQueue.js +230 -210
- package/dist/structures/Enums.js +4 -0
- package/dist/structures/Filters.js +149 -99
- package/dist/structures/Player.js +3 -4
- package/dist/structures/Utils.js +7 -6
- package/package.json +1 -1
|
@@ -26,78 +26,7 @@ class MemoryQueue extends Array {
|
|
|
26
26
|
/** The guild property. */
|
|
27
27
|
this.guildId = guildId;
|
|
28
28
|
}
|
|
29
|
-
|
|
30
|
-
* @returns The current track.
|
|
31
|
-
*/
|
|
32
|
-
async getCurrent() {
|
|
33
|
-
return this.current;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* @param track The track to set.
|
|
37
|
-
*/
|
|
38
|
-
async setCurrent(track) {
|
|
39
|
-
this.current = track;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* @returns The previous tracks.
|
|
43
|
-
*/
|
|
44
|
-
async getPrevious() {
|
|
45
|
-
return [...this.previous];
|
|
46
|
-
}
|
|
47
|
-
async addPrevious(track) {
|
|
48
|
-
if (Array.isArray(track)) {
|
|
49
|
-
const newTracks = track.filter((t) => !this.previous.some((p) => p.identifier === t.identifier));
|
|
50
|
-
this.previous.unshift(...newTracks);
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
const exists = this.previous.some((p) => p.identifier === track.identifier);
|
|
54
|
-
if (!exists) {
|
|
55
|
-
this.previous.unshift(track);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* @param tracks The tracks to set.
|
|
61
|
-
*/
|
|
62
|
-
async setPrevious(tracks) {
|
|
63
|
-
this.previous = [...tracks];
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* @returns The newest track.
|
|
67
|
-
*/
|
|
68
|
-
async popPrevious() {
|
|
69
|
-
return this.previous.shift() || null; // get newest track
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Clears the previous tracks.
|
|
73
|
-
*/
|
|
74
|
-
async clearPrevious() {
|
|
75
|
-
this.previous = [];
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* The total duration of the queue in milliseconds.
|
|
79
|
-
* This includes the duration of the currently playing track.
|
|
80
|
-
*/
|
|
81
|
-
async duration() {
|
|
82
|
-
const current = this.current?.duration ?? 0;
|
|
83
|
-
return this.reduce((acc, cur) => acc + (cur.duration || 0), current);
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* The total size of tracks in the queue including the current track.
|
|
87
|
-
* This includes the current track if it is not null.
|
|
88
|
-
* @returns The total size of tracks in the queue including the current track.
|
|
89
|
-
*/
|
|
90
|
-
async totalSize() {
|
|
91
|
-
return this.length + (this.current ? 1 : 0);
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* The size of tracks in the queue.
|
|
95
|
-
* This does not include the currently playing track.
|
|
96
|
-
* @returns The size of tracks in the queue.
|
|
97
|
-
*/
|
|
98
|
-
async size() {
|
|
99
|
-
return this.length;
|
|
100
|
-
}
|
|
29
|
+
// #region Public
|
|
101
30
|
/**
|
|
102
31
|
* Adds a track to the queue.
|
|
103
32
|
* @param track The track or tracks to add. Can be a single `Track` or an array of `Track`s.
|
|
@@ -176,42 +105,21 @@ class MemoryQueue extends Array {
|
|
|
176
105
|
},
|
|
177
106
|
});
|
|
178
107
|
}
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
108
|
+
/**
|
|
109
|
+
* Adds a track to the previous tracks.
|
|
110
|
+
* @param track The track or tracks to add. Can be a single `Track` or an array of `Track`s.
|
|
111
|
+
*/
|
|
112
|
+
async addPrevious(track) {
|
|
113
|
+
if (Array.isArray(track)) {
|
|
114
|
+
const newTracks = track.filter((t) => !this.previous.some((p) => p.identifier === t.identifier));
|
|
115
|
+
this.previous.unshift(...newTracks);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
const exists = this.previous.some((p) => p.identifier === track.identifier);
|
|
119
|
+
if (!exists) {
|
|
120
|
+
this.previous.unshift(track);
|
|
188
121
|
}
|
|
189
|
-
const removedTracks = this.splice(startOrPosition, end - startOrPosition);
|
|
190
|
-
this.manager.emit(Enums_1.ManagerEventTypes.Debug, `[QUEUE] Removed ${removedTracks.length} track(s) from player: ${this.guildId} from position ${startOrPosition} to ${end}.`);
|
|
191
|
-
this.manager.emit(Enums_1.ManagerEventTypes.PlayerStateUpdate, oldPlayer, this.manager.players.get(this.guildId), {
|
|
192
|
-
changeType: Enums_1.PlayerStateEventTypes.QueueChange,
|
|
193
|
-
details: {
|
|
194
|
-
type: "queue",
|
|
195
|
-
action: "remove",
|
|
196
|
-
tracks: removedTracks,
|
|
197
|
-
},
|
|
198
|
-
});
|
|
199
|
-
return removedTracks;
|
|
200
122
|
}
|
|
201
|
-
// Single item removal when no end specified
|
|
202
|
-
const removedTrack = this.splice(startOrPosition, 1);
|
|
203
|
-
this.manager.emit(Enums_1.ManagerEventTypes.Debug, `[QUEUE] Removed 1 track from player: ${this.guildId} from position ${startOrPosition}: ${JSON.stringify(removedTrack[0], null, 2)}`);
|
|
204
|
-
// Ensure removedTrack is an array for consistency
|
|
205
|
-
const tracksToEmit = removedTrack.length > 0 ? removedTrack : [];
|
|
206
|
-
this.manager.emit(Enums_1.ManagerEventTypes.PlayerStateUpdate, oldPlayer, this.manager.players.get(this.guildId), {
|
|
207
|
-
changeType: Enums_1.PlayerStateEventTypes.QueueChange,
|
|
208
|
-
details: {
|
|
209
|
-
type: "queue",
|
|
210
|
-
action: "remove",
|
|
211
|
-
tracks: tracksToEmit,
|
|
212
|
-
},
|
|
213
|
-
});
|
|
214
|
-
return removedTrack;
|
|
215
123
|
}
|
|
216
124
|
/**
|
|
217
125
|
* Clears the queue.
|
|
@@ -235,68 +143,137 @@ class MemoryQueue extends Array {
|
|
|
235
143
|
this.manager.emit(Enums_1.ManagerEventTypes.Debug, `[QUEUE] Cleared the queue for: ${this.guildId}`);
|
|
236
144
|
}
|
|
237
145
|
/**
|
|
238
|
-
*
|
|
239
|
-
* This will randomize the order of the tracks in the queue and emit a state update event.
|
|
146
|
+
* Clears the previous tracks.
|
|
240
147
|
*/
|
|
241
|
-
async
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
148
|
+
async clearPrevious() {
|
|
149
|
+
this.previous = [];
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Removes the first element from the queue.
|
|
153
|
+
*/
|
|
154
|
+
async dequeue() {
|
|
155
|
+
return super.shift();
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* The total duration of the queue in milliseconds.
|
|
159
|
+
* This includes the duration of the currently playing track.
|
|
160
|
+
*/
|
|
161
|
+
async duration() {
|
|
162
|
+
const current = this.current?.duration ?? 0;
|
|
163
|
+
return this.reduce((acc, cur) => acc + (cur.duration || 0), current);
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Adds the specified track or tracks to the front of the queue.
|
|
167
|
+
* @param track The track or tracks to add.
|
|
168
|
+
*/
|
|
169
|
+
async enqueueFront(track) {
|
|
170
|
+
if (Array.isArray(track)) {
|
|
171
|
+
this.unshift(...track);
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
this.unshift(track);
|
|
248
175
|
}
|
|
249
|
-
// Emit an event to update the player state indicating the queue has been shuffled.
|
|
250
|
-
this.manager.emit(Enums_1.ManagerEventTypes.PlayerStateUpdate, oldPlayer, this.manager.players.get(this.guildId), {
|
|
251
|
-
changeType: Enums_1.PlayerStateEventTypes.QueueChange,
|
|
252
|
-
details: {
|
|
253
|
-
type: "queue",
|
|
254
|
-
action: "shuffle",
|
|
255
|
-
},
|
|
256
|
-
});
|
|
257
|
-
// Emit a debug message indicating the queue has been shuffled for a specific guild ID.
|
|
258
|
-
this.manager.emit(Enums_1.ManagerEventTypes.Debug, `[QUEUE] Shuffled the queue for: ${this.guildId}`);
|
|
259
176
|
}
|
|
260
177
|
/**
|
|
261
|
-
*
|
|
178
|
+
* @returns Whether all elements in the queue satisfy the provided testing function.
|
|
262
179
|
*/
|
|
263
|
-
async
|
|
264
|
-
|
|
180
|
+
async everyAsync(callback) {
|
|
181
|
+
return this.every(callback);
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* @returns A new array with all elements that pass the test implemented by the provided function.
|
|
185
|
+
*/
|
|
186
|
+
async filterAsync(callback) {
|
|
187
|
+
return this.filter(callback);
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* @returns The first element in the queue that satisfies the provided testing function.
|
|
191
|
+
*/
|
|
192
|
+
async findAsync(callback) {
|
|
193
|
+
return this.find(callback);
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* @returns The current track.
|
|
197
|
+
*/
|
|
198
|
+
async getCurrent() {
|
|
199
|
+
return this.current;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* @returns The previous tracks.
|
|
203
|
+
*/
|
|
204
|
+
async getPrevious() {
|
|
205
|
+
return [...this.previous];
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* @returns The tracks in the queue from start to end.
|
|
209
|
+
*/
|
|
210
|
+
async getSlice(start, end) {
|
|
211
|
+
return this.slice(start, end); // Native sync method, still wrapped in a Promise
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* @returns The tracks in the queue.
|
|
215
|
+
*/
|
|
216
|
+
async getTracks() {
|
|
217
|
+
return [...this]; // clone to avoid direct mutation
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* @returns A new array with the results of calling a provided function on every element in the queue.
|
|
221
|
+
*/
|
|
222
|
+
async mapAsync(callback) {
|
|
223
|
+
return this.map(callback);
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Modifies the queue at the specified index.
|
|
227
|
+
* @param start The index at which to start modifying the queue.
|
|
228
|
+
* @param deleteCount The number of elements to remove from the queue.
|
|
229
|
+
* @param items The elements to add to the queue.
|
|
230
|
+
* @returns The modified queue.
|
|
231
|
+
*/
|
|
232
|
+
async modifyAt(start, deleteCount = 0, ...items) {
|
|
233
|
+
return super.splice(start, deleteCount, ...items);
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* @returns The newest track.
|
|
237
|
+
*/
|
|
238
|
+
async popPrevious() {
|
|
239
|
+
return this.previous.shift() || null; // get newest track
|
|
240
|
+
}
|
|
241
|
+
async remove(startOrPosition = 0, end) {
|
|
265
242
|
const oldPlayer = this.manager.players.get(this.guildId) ? { ...this.manager.players.get(this.guildId) } : null;
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
if (!userTracks.has(user)) {
|
|
271
|
-
userTracks.set(user, []);
|
|
243
|
+
if (typeof end !== "undefined") {
|
|
244
|
+
// Validate input for `start` and `end`
|
|
245
|
+
if (isNaN(Number(startOrPosition)) || isNaN(Number(end))) {
|
|
246
|
+
throw new RangeError(`Invalid "start" or "end" parameter: start = ${startOrPosition}, end = ${end}`);
|
|
272
247
|
}
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
}
|
|
248
|
+
if (startOrPosition >= end || startOrPosition >= this.length) {
|
|
249
|
+
throw new RangeError("Invalid range: start should be less than end and within queue length.");
|
|
250
|
+
}
|
|
251
|
+
const removedTracks = this.splice(startOrPosition, end - startOrPosition);
|
|
252
|
+
this.manager.emit(Enums_1.ManagerEventTypes.Debug, `[QUEUE] Removed ${removedTracks.length} track(s) from player: ${this.guildId} from position ${startOrPosition} to ${end}.`);
|
|
253
|
+
this.manager.emit(Enums_1.ManagerEventTypes.PlayerStateUpdate, oldPlayer, this.manager.players.get(this.guildId), {
|
|
254
|
+
changeType: Enums_1.PlayerStateEventTypes.QueueChange,
|
|
255
|
+
details: {
|
|
256
|
+
type: "queue",
|
|
257
|
+
action: "remove",
|
|
258
|
+
tracks: removedTracks,
|
|
259
|
+
},
|
|
285
260
|
});
|
|
261
|
+
return removedTracks;
|
|
286
262
|
}
|
|
287
|
-
//
|
|
288
|
-
this.splice(
|
|
289
|
-
this.
|
|
290
|
-
//
|
|
263
|
+
// Single item removal when no end specified
|
|
264
|
+
const removedTrack = this.splice(startOrPosition, 1);
|
|
265
|
+
this.manager.emit(Enums_1.ManagerEventTypes.Debug, `[QUEUE] Removed 1 track from player: ${this.guildId} from position ${startOrPosition}: ${JSON.stringify(removedTrack[0], null, 2)}`);
|
|
266
|
+
// Ensure removedTrack is an array for consistency
|
|
267
|
+
const tracksToEmit = removedTrack.length > 0 ? removedTrack : [];
|
|
291
268
|
this.manager.emit(Enums_1.ManagerEventTypes.PlayerStateUpdate, oldPlayer, this.manager.players.get(this.guildId), {
|
|
292
269
|
changeType: Enums_1.PlayerStateEventTypes.QueueChange,
|
|
293
270
|
details: {
|
|
294
271
|
type: "queue",
|
|
295
|
-
action: "
|
|
272
|
+
action: "remove",
|
|
273
|
+
tracks: tracksToEmit,
|
|
296
274
|
},
|
|
297
275
|
});
|
|
298
|
-
|
|
299
|
-
this.manager.emit(Enums_1.ManagerEventTypes.Debug, `[QUEUE] userBlockShuffled the queue for: ${this.guildId}`);
|
|
276
|
+
return removedTrack;
|
|
300
277
|
}
|
|
301
278
|
/**
|
|
302
279
|
* Shuffles the queue to play tracks requested by each user one by one.
|
|
@@ -350,62 +327,47 @@ class MemoryQueue extends Array {
|
|
|
350
327
|
this.manager.emit(Enums_1.ManagerEventTypes.Debug, `[QUEUE] roundRobinShuffled the queue for: ${this.guildId}`);
|
|
351
328
|
}
|
|
352
329
|
/**
|
|
353
|
-
*
|
|
354
|
-
*/
|
|
355
|
-
async dequeue() {
|
|
356
|
-
return super.shift();
|
|
357
|
-
}
|
|
358
|
-
/**
|
|
359
|
-
* Adds the specified track or tracks to the front of the queue.
|
|
360
|
-
* @param track The track or tracks to add.
|
|
361
|
-
*/
|
|
362
|
-
async enqueueFront(track) {
|
|
363
|
-
if (Array.isArray(track)) {
|
|
364
|
-
this.unshift(...track);
|
|
365
|
-
}
|
|
366
|
-
else {
|
|
367
|
-
this.unshift(track);
|
|
368
|
-
}
|
|
369
|
-
}
|
|
370
|
-
/**
|
|
371
|
-
* @returns A shallow copy of the queue.
|
|
372
|
-
*/
|
|
373
|
-
async getTracks() {
|
|
374
|
-
return [...this]; // clone to avoid direct mutation
|
|
375
|
-
}
|
|
376
|
-
/**
|
|
377
|
-
* @returns A shallow copy of the queue.
|
|
378
|
-
*/
|
|
379
|
-
async getSlice(start, end) {
|
|
380
|
-
return this.slice(start, end); // Native sync method, still wrapped in a Promise
|
|
381
|
-
}
|
|
382
|
-
/**
|
|
383
|
-
* Modifies the queue at the specified index.
|
|
384
|
-
* @param start The index at which to start modifying the queue.
|
|
385
|
-
* @param deleteCount The number of elements to remove from the queue.
|
|
386
|
-
* @param items The elements to add to the queue.
|
|
387
|
-
* @returns The modified queue.
|
|
330
|
+
* @param track The track to set.
|
|
388
331
|
*/
|
|
389
|
-
async
|
|
390
|
-
|
|
332
|
+
async setCurrent(track) {
|
|
333
|
+
this.current = track;
|
|
391
334
|
}
|
|
392
335
|
/**
|
|
393
|
-
* @
|
|
336
|
+
* @param tracks The tracks to set.
|
|
394
337
|
*/
|
|
395
|
-
async
|
|
396
|
-
|
|
338
|
+
async setPrevious(tracks) {
|
|
339
|
+
this.previous = [...tracks];
|
|
397
340
|
}
|
|
398
341
|
/**
|
|
399
|
-
*
|
|
342
|
+
* Shuffles the queue.
|
|
343
|
+
* This will randomize the order of the tracks in the queue and emit a state update event.
|
|
400
344
|
*/
|
|
401
|
-
async
|
|
402
|
-
|
|
345
|
+
async shuffle() {
|
|
346
|
+
// Capture the current state of the player for event emission.
|
|
347
|
+
const oldPlayer = this.manager.players.get(this.guildId) ? { ...this.manager.players.get(this.guildId) } : null;
|
|
348
|
+
// Shuffle the queue.
|
|
349
|
+
for (let i = this.length - 1; i > 0; i--) {
|
|
350
|
+
const j = Math.floor(Math.random() * (i + 1));
|
|
351
|
+
[this[i], this[j]] = [this[j], this[i]];
|
|
352
|
+
}
|
|
353
|
+
// Emit an event to update the player state indicating the queue has been shuffled.
|
|
354
|
+
this.manager.emit(Enums_1.ManagerEventTypes.PlayerStateUpdate, oldPlayer, this.manager.players.get(this.guildId), {
|
|
355
|
+
changeType: Enums_1.PlayerStateEventTypes.QueueChange,
|
|
356
|
+
details: {
|
|
357
|
+
type: "queue",
|
|
358
|
+
action: "shuffle",
|
|
359
|
+
},
|
|
360
|
+
});
|
|
361
|
+
// Emit a debug message indicating the queue has been shuffled for a specific guild ID.
|
|
362
|
+
this.manager.emit(Enums_1.ManagerEventTypes.Debug, `[QUEUE] Shuffled the queue for: ${this.guildId}`);
|
|
403
363
|
}
|
|
404
364
|
/**
|
|
405
|
-
*
|
|
365
|
+
* The size of tracks in the queue.
|
|
366
|
+
* This does not include the currently playing track.
|
|
367
|
+
* @returns The size of tracks in the queue.
|
|
406
368
|
*/
|
|
407
|
-
async
|
|
408
|
-
return this.
|
|
369
|
+
async size() {
|
|
370
|
+
return this.length;
|
|
409
371
|
}
|
|
410
372
|
/**
|
|
411
373
|
* @returns Whether at least one element in the queue satisfies the provided testing function.
|
|
@@ -414,10 +376,53 @@ class MemoryQueue extends Array {
|
|
|
414
376
|
return this.some(callback);
|
|
415
377
|
}
|
|
416
378
|
/**
|
|
417
|
-
*
|
|
379
|
+
* The total size of tracks in the queue including the current track.
|
|
380
|
+
* This includes the current track if it is not null.
|
|
381
|
+
* @returns The total size of tracks in the queue including the current track.
|
|
418
382
|
*/
|
|
419
|
-
async
|
|
420
|
-
return this.
|
|
383
|
+
async totalSize() {
|
|
384
|
+
return this.length + (this.current ? 1 : 0);
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Shuffles the queue to play tracks requested by each user one block at a time.
|
|
388
|
+
*/
|
|
389
|
+
async userBlockShuffle() {
|
|
390
|
+
// Capture the current state of the player for event emission.
|
|
391
|
+
const oldPlayer = this.manager.players.get(this.guildId) ? { ...this.manager.players.get(this.guildId) } : null;
|
|
392
|
+
// Group the tracks in the queue by the user that requested them.
|
|
393
|
+
const userTracks = new Map();
|
|
394
|
+
this.forEach((track) => {
|
|
395
|
+
const user = track.requester.id;
|
|
396
|
+
if (!userTracks.has(user)) {
|
|
397
|
+
userTracks.set(user, []);
|
|
398
|
+
}
|
|
399
|
+
userTracks.get(user).push(track);
|
|
400
|
+
});
|
|
401
|
+
// Create a new array for the shuffled queue.
|
|
402
|
+
const shuffledQueue = [];
|
|
403
|
+
// Iterate over the user tracks and add one track from each user to the shuffled queue.
|
|
404
|
+
// This will ensure that all the tracks requested by each user are played in a block order.
|
|
405
|
+
while (shuffledQueue.length < this.length) {
|
|
406
|
+
userTracks.forEach((tracks) => {
|
|
407
|
+
const track = tracks.shift();
|
|
408
|
+
if (track) {
|
|
409
|
+
shuffledQueue.push(track);
|
|
410
|
+
}
|
|
411
|
+
});
|
|
412
|
+
}
|
|
413
|
+
// Clear the queue and add the shuffled tracks.
|
|
414
|
+
this.splice(0);
|
|
415
|
+
this.add(shuffledQueue);
|
|
416
|
+
// Emit an event to update the player state indicating the queue has been shuffled.
|
|
417
|
+
this.manager.emit(Enums_1.ManagerEventTypes.PlayerStateUpdate, oldPlayer, this.manager.players.get(this.guildId), {
|
|
418
|
+
changeType: Enums_1.PlayerStateEventTypes.QueueChange,
|
|
419
|
+
details: {
|
|
420
|
+
type: "queue",
|
|
421
|
+
action: "userBlock",
|
|
422
|
+
},
|
|
423
|
+
});
|
|
424
|
+
// Emit a debug message indicating the queue has been shuffled for a specific guild ID.
|
|
425
|
+
this.manager.emit(Enums_1.ManagerEventTypes.Debug, `[QUEUE] userBlockShuffled the queue for: ${this.guildId}`);
|
|
421
426
|
}
|
|
422
427
|
}
|
|
423
428
|
exports.MemoryQueue = MemoryQueue;
|