magmastream 2.9.0-dev.35 → 2.9.0-dev.36
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 +494 -73
- package/dist/index.js +6 -1
- package/dist/statestorage/JsonQueue.js +436 -0
- package/dist/{structures/Queue.js → statestorage/MemoryQueue.js} +71 -16
- package/dist/{structures → statestorage}/RedisQueue.js +107 -2
- package/dist/structures/Enums.js +2 -1
- package/dist/structures/Manager.js +162 -62
- package/dist/structures/Node.js +12 -7
- package/dist/structures/Player.js +18 -10
- package/dist/structures/Rest.js +2 -1
- package/dist/structures/Utils.js +5 -5
- package/dist/wrappers/seyfert.js +43 -0
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { Redis } from 'ioredis';
|
|
|
7
7
|
import { Client as Client$1 } from 'eris';
|
|
8
8
|
import { ClusterClient, ShardClient } from 'detritus-client';
|
|
9
9
|
import { Client as Client$2 } from 'oceanic.js';
|
|
10
|
+
import { Client as Client$3 } from 'seyfert';
|
|
10
11
|
|
|
11
12
|
/** Represents an equalizer band. */
|
|
12
13
|
interface Band {
|
|
@@ -140,8 +141,9 @@ interface playOptions {
|
|
|
140
141
|
* State Storage Enum
|
|
141
142
|
*/
|
|
142
143
|
declare enum StateStorageType {
|
|
143
|
-
|
|
144
|
-
Redis = "redis"
|
|
144
|
+
Memory = "memory",
|
|
145
|
+
Redis = "redis",
|
|
146
|
+
JSON = "json"
|
|
145
147
|
}
|
|
146
148
|
/**
|
|
147
149
|
* AutoPlay Platform Enum
|
|
@@ -332,7 +334,7 @@ declare enum SponsorBlockSegment {
|
|
|
332
334
|
/**
|
|
333
335
|
* The player's queue, the `current` property is the currently playing track, think of the rest as the up-coming tracks.
|
|
334
336
|
*/
|
|
335
|
-
declare class
|
|
337
|
+
declare class MemoryQueue extends Array<Track> implements IQueue {
|
|
336
338
|
/** The current track */
|
|
337
339
|
current: Track | null;
|
|
338
340
|
/** The previous tracks */
|
|
@@ -347,12 +349,30 @@ declare class Queue extends Array<Track> implements IQueue {
|
|
|
347
349
|
* @param manager The Manager instance.
|
|
348
350
|
*/
|
|
349
351
|
constructor(guildId: string, manager: Manager);
|
|
352
|
+
/**
|
|
353
|
+
* @returns The current track.
|
|
354
|
+
*/
|
|
350
355
|
getCurrent(): Promise<Track | null>;
|
|
356
|
+
/**
|
|
357
|
+
* @param track The track to set.
|
|
358
|
+
*/
|
|
351
359
|
setCurrent(track: Track | null): Promise<void>;
|
|
360
|
+
/**
|
|
361
|
+
* @returns The previous tracks.
|
|
362
|
+
*/
|
|
352
363
|
getPrevious(): Promise<Track[]>;
|
|
353
364
|
addPrevious(track: Track | Track[]): Promise<void>;
|
|
365
|
+
/**
|
|
366
|
+
* @param tracks The tracks to set.
|
|
367
|
+
*/
|
|
354
368
|
setPrevious(tracks: Track[]): Promise<void>;
|
|
369
|
+
/**
|
|
370
|
+
* @returns The newest track.
|
|
371
|
+
*/
|
|
355
372
|
popPrevious(): Promise<Track | null>;
|
|
373
|
+
/**
|
|
374
|
+
* Clears the previous tracks.
|
|
375
|
+
*/
|
|
356
376
|
clearPrevious(): Promise<void>;
|
|
357
377
|
/**
|
|
358
378
|
* The total duration of the queue in milliseconds.
|
|
@@ -404,15 +424,360 @@ declare class Queue extends Array<Track> implements IQueue {
|
|
|
404
424
|
* Shuffles the queue to play tracks requested by each user one by one.
|
|
405
425
|
*/
|
|
406
426
|
roundRobinShuffle(): Promise<void>;
|
|
427
|
+
/**
|
|
428
|
+
* Removes the first element from the queue.
|
|
429
|
+
*/
|
|
430
|
+
dequeue(): Promise<Track | undefined>;
|
|
431
|
+
/**
|
|
432
|
+
* Adds the specified track or tracks to the front of the queue.
|
|
433
|
+
* @param track The track or tracks to add.
|
|
434
|
+
*/
|
|
435
|
+
enqueueFront(track: Track | Track[]): Promise<void>;
|
|
436
|
+
/**
|
|
437
|
+
* @returns A shallow copy of the queue.
|
|
438
|
+
*/
|
|
439
|
+
getTracks(): Promise<Track[]>;
|
|
440
|
+
/**
|
|
441
|
+
* @returns A shallow copy of the queue.
|
|
442
|
+
*/
|
|
443
|
+
getSlice(start?: number, end?: number): Promise<Track[]>;
|
|
444
|
+
/**
|
|
445
|
+
* Modifies the queue at the specified index.
|
|
446
|
+
* @param start The index at which to start modifying the queue.
|
|
447
|
+
* @param deleteCount The number of elements to remove from the queue.
|
|
448
|
+
* @param items The elements to add to the queue.
|
|
449
|
+
* @returns The modified queue.
|
|
450
|
+
*/
|
|
451
|
+
modifyAt(start: number, deleteCount?: number, ...items: Track[]): Promise<Track[]>;
|
|
452
|
+
/**
|
|
453
|
+
* @returns A new array with the results of calling a provided function on every element in the queue.
|
|
454
|
+
*/
|
|
455
|
+
mapAsync<T>(callback: (track: Track, index: number, array: Track[]) => T): Promise<T[]>;
|
|
456
|
+
/**
|
|
457
|
+
* @returns A new array with all elements that pass the test implemented by the provided function.
|
|
458
|
+
*/
|
|
459
|
+
filterAsync(callback: (track: Track, index: number, array: Track[]) => boolean): Promise<Track[]>;
|
|
460
|
+
/**
|
|
461
|
+
* @returns The first element in the queue that satisfies the provided testing function.
|
|
462
|
+
*/
|
|
463
|
+
findAsync(callback: (track: Track, index: number, array: Track[]) => boolean): Promise<Track | undefined>;
|
|
464
|
+
/**
|
|
465
|
+
* @returns Whether at least one element in the queue satisfies the provided testing function.
|
|
466
|
+
*/
|
|
467
|
+
someAsync(callback: (track: Track, index: number, array: Track[]) => boolean): Promise<boolean>;
|
|
468
|
+
/**
|
|
469
|
+
* @returns Whether all elements in the queue satisfy the provided testing function.
|
|
470
|
+
*/
|
|
471
|
+
everyAsync(callback: (track: Track, index: number, array: Track[]) => boolean): Promise<boolean>;
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
/**
|
|
475
|
+
* The player's queue, the `current` property is the currently playing track, think of the rest as the up-coming tracks.
|
|
476
|
+
*/
|
|
477
|
+
declare class RedisQueue implements IQueue {
|
|
478
|
+
readonly guildId: string;
|
|
479
|
+
readonly manager: Manager;
|
|
480
|
+
/**
|
|
481
|
+
* The Redis instance.
|
|
482
|
+
*/
|
|
483
|
+
private redis;
|
|
484
|
+
/**
|
|
485
|
+
* The prefix for the Redis keys.
|
|
486
|
+
*/
|
|
487
|
+
redisPrefix: string;
|
|
488
|
+
/**
|
|
489
|
+
* Constructs a new RedisQueue.
|
|
490
|
+
* @param guildId The guild ID.
|
|
491
|
+
* @param manager The Manager instance.
|
|
492
|
+
*/
|
|
493
|
+
constructor(guildId: string, manager: Manager);
|
|
494
|
+
/**
|
|
495
|
+
* @returns The queue key.
|
|
496
|
+
*/
|
|
497
|
+
private get queueKey();
|
|
498
|
+
/**
|
|
499
|
+
* @returns The current key.
|
|
500
|
+
*/
|
|
501
|
+
private get currentKey();
|
|
502
|
+
/**
|
|
503
|
+
* @returns The previous key.
|
|
504
|
+
*/
|
|
505
|
+
private get previousKey();
|
|
506
|
+
/**
|
|
507
|
+
* Helper to serialize/deserialize Track
|
|
508
|
+
*/
|
|
509
|
+
private serialize;
|
|
510
|
+
/**
|
|
511
|
+
* Helper to serialize/deserialize Track
|
|
512
|
+
*/
|
|
513
|
+
private deserialize;
|
|
514
|
+
/**
|
|
515
|
+
* @returns The current track.
|
|
516
|
+
*/
|
|
517
|
+
getCurrent(): Promise<Track | null>;
|
|
518
|
+
/**
|
|
519
|
+
* @param track The track to set.
|
|
520
|
+
*/
|
|
521
|
+
setCurrent(track: Track | null): Promise<void>;
|
|
522
|
+
/**
|
|
523
|
+
* @returns The previous tracks.
|
|
524
|
+
*/
|
|
525
|
+
getPrevious(): Promise<Track[]>;
|
|
526
|
+
/**
|
|
527
|
+
* @param track The track to add.
|
|
528
|
+
*/
|
|
529
|
+
addPrevious(track: Track | Track[]): Promise<void>;
|
|
530
|
+
/**
|
|
531
|
+
* @param track The track to set.
|
|
532
|
+
*/
|
|
533
|
+
setPrevious(track: Track | Track[]): Promise<void>;
|
|
534
|
+
/**
|
|
535
|
+
* @returns The newest track.
|
|
536
|
+
*/
|
|
537
|
+
popPrevious(): Promise<Track | null>;
|
|
538
|
+
/**
|
|
539
|
+
* Clears the previous tracks.
|
|
540
|
+
*/
|
|
541
|
+
clearPrevious(): Promise<void>;
|
|
542
|
+
/**
|
|
543
|
+
* @param track The track or tracks to add. Can be a single `Track` or an array of `Track`s.
|
|
544
|
+
* @param [offset=null] The position to add the track(s) at. If not provided, the track(s) will be added at the end of the queue.
|
|
545
|
+
*/
|
|
546
|
+
add(track: Track | Track[], offset?: number): Promise<void>;
|
|
547
|
+
/**
|
|
548
|
+
* @param position The position to remove the track at.
|
|
549
|
+
* @param end The end position to remove the track at.
|
|
550
|
+
*/
|
|
551
|
+
remove(position?: number): Promise<Track[]>;
|
|
552
|
+
remove(start: number, end: number): Promise<Track[]>;
|
|
553
|
+
/**
|
|
554
|
+
* Clears the queue.
|
|
555
|
+
*/
|
|
556
|
+
clear(): Promise<void>;
|
|
557
|
+
/**
|
|
558
|
+
* @returns The size of the queue.
|
|
559
|
+
*/
|
|
560
|
+
size(): Promise<number>;
|
|
561
|
+
/**
|
|
562
|
+
* @returns The total size of tracks in the queue including the current track.
|
|
563
|
+
*/
|
|
564
|
+
totalSize(): Promise<number>;
|
|
565
|
+
/**
|
|
566
|
+
* @returns The total duration of the queue in milliseconds.
|
|
567
|
+
* This includes the duration of the currently playing track.
|
|
568
|
+
*/
|
|
569
|
+
duration(): Promise<number>;
|
|
570
|
+
/**
|
|
571
|
+
* Shuffles the queue.
|
|
572
|
+
*/
|
|
573
|
+
shuffle(): Promise<void>;
|
|
574
|
+
/**
|
|
575
|
+
* Shuffles the queue, but keeps the tracks of the same user together.
|
|
576
|
+
*/
|
|
577
|
+
userBlockShuffle(): Promise<void>;
|
|
578
|
+
/**
|
|
579
|
+
* Shuffles the queue round-robin style.
|
|
580
|
+
*/
|
|
581
|
+
roundRobinShuffle(): Promise<void>;
|
|
582
|
+
/**
|
|
583
|
+
* Removes the first track from the queue.
|
|
584
|
+
*/
|
|
585
|
+
dequeue(): Promise<Track | undefined>;
|
|
586
|
+
/**
|
|
587
|
+
* Adds a track to the front of the queue.
|
|
588
|
+
*/
|
|
589
|
+
enqueueFront(track: Track | Track[]): Promise<void>;
|
|
590
|
+
/**
|
|
591
|
+
* @returns The tracks in the queue.
|
|
592
|
+
*/
|
|
593
|
+
getTracks(): Promise<Track[]>;
|
|
594
|
+
/**
|
|
595
|
+
* @returns The tracks in the queue from the start to the end.
|
|
596
|
+
*/
|
|
597
|
+
getSlice(start?: number, end?: number): Promise<Track[]>;
|
|
598
|
+
/**
|
|
599
|
+
* Modifies the queue at the specified index.
|
|
600
|
+
*/
|
|
601
|
+
modifyAt(start: number, deleteCount?: number, ...items: Track[]): Promise<Track[]>;
|
|
602
|
+
/**
|
|
603
|
+
* @returns The tracks in the queue after the specified index.
|
|
604
|
+
*/
|
|
605
|
+
mapAsync<T>(callback: (track: Track, index: number, array: Track[]) => T): Promise<T[]>;
|
|
606
|
+
/**
|
|
607
|
+
* @returns The tracks in the queue that match the specified condition.
|
|
608
|
+
*/
|
|
609
|
+
filterAsync(callback: (track: Track, index: number, array: Track[]) => boolean): Promise<Track[]>;
|
|
610
|
+
/**
|
|
611
|
+
* @returns The first track in the queue that matches the specified condition.
|
|
612
|
+
*/
|
|
613
|
+
findAsync(callback: (track: Track, index: number, array: Track[]) => boolean): Promise<Track | undefined>;
|
|
614
|
+
/**
|
|
615
|
+
* @returns Whether any tracks in the queue match the specified condition.
|
|
616
|
+
*/
|
|
617
|
+
someAsync(callback: (track: Track, index: number, array: Track[]) => boolean): Promise<boolean>;
|
|
618
|
+
/**
|
|
619
|
+
* @returns Whether all tracks in the queue match the specified condition.
|
|
620
|
+
*/
|
|
621
|
+
everyAsync(callback: (track: Track, index: number, array: Track[]) => boolean): Promise<boolean>;
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
/**
|
|
625
|
+
* The player's queue, the `current` property is the currently playing track, think of the rest as the up-coming tracks.
|
|
626
|
+
*/
|
|
627
|
+
declare class JsonQueue implements IQueue {
|
|
628
|
+
readonly guildId: string;
|
|
629
|
+
readonly manager: Manager;
|
|
630
|
+
private basePath;
|
|
631
|
+
/**
|
|
632
|
+
* @param guildId The guild ID.
|
|
633
|
+
* @param manager The manager.
|
|
634
|
+
*/
|
|
635
|
+
constructor(guildId: string, manager: Manager);
|
|
636
|
+
/**
|
|
637
|
+
* @returns The queue path.
|
|
638
|
+
*/
|
|
639
|
+
private get queuePath();
|
|
640
|
+
/**
|
|
641
|
+
* @returns The current path.
|
|
642
|
+
*/
|
|
643
|
+
private get currentPath();
|
|
644
|
+
/**
|
|
645
|
+
* @returns The previous path.
|
|
646
|
+
*/
|
|
647
|
+
private get previousPath();
|
|
648
|
+
/**
|
|
649
|
+
* Ensures the directory exists.
|
|
650
|
+
*/
|
|
651
|
+
private ensureDir;
|
|
652
|
+
/**
|
|
653
|
+
* @returns The queue.
|
|
654
|
+
*/
|
|
655
|
+
private getQueue;
|
|
656
|
+
/**
|
|
657
|
+
* @param queue The queue.
|
|
658
|
+
*/
|
|
659
|
+
private setQueue;
|
|
660
|
+
/**
|
|
661
|
+
* @param filePath The file path.
|
|
662
|
+
* @returns The JSON data.
|
|
663
|
+
*/
|
|
664
|
+
private readJSON;
|
|
665
|
+
/**
|
|
666
|
+
* @param filePath The file path.
|
|
667
|
+
* @param data The data to write.
|
|
668
|
+
*/
|
|
669
|
+
private writeJSON;
|
|
670
|
+
/**
|
|
671
|
+
* @param filePath The file path.
|
|
672
|
+
*/
|
|
673
|
+
private deleteFile;
|
|
674
|
+
/**
|
|
675
|
+
* @returns The current track.
|
|
676
|
+
*/
|
|
677
|
+
getCurrent(): Promise<Track | null>;
|
|
678
|
+
/**
|
|
679
|
+
* @param track The track to set.
|
|
680
|
+
*/
|
|
681
|
+
setCurrent(track: Track | null): Promise<void>;
|
|
682
|
+
/**
|
|
683
|
+
* @returns The previous tracks.
|
|
684
|
+
*/
|
|
685
|
+
getPrevious(): Promise<Track[]>;
|
|
686
|
+
/**
|
|
687
|
+
* @param track The track to add.
|
|
688
|
+
*/
|
|
689
|
+
addPrevious(track: Track | Track[]): Promise<void>;
|
|
690
|
+
/**
|
|
691
|
+
* @param track The track to set.
|
|
692
|
+
*/
|
|
693
|
+
setPrevious(track: Track | Track[]): Promise<void>;
|
|
694
|
+
/**
|
|
695
|
+
* @returns The newest track.
|
|
696
|
+
*/
|
|
697
|
+
popPrevious(): Promise<Track | null>;
|
|
698
|
+
/**
|
|
699
|
+
* Clears the previous tracks.
|
|
700
|
+
*/
|
|
701
|
+
clearPrevious(): Promise<void>;
|
|
702
|
+
/**
|
|
703
|
+
* @param track The track or tracks to add. Can be a single `Track` or an array of `Track`s.
|
|
704
|
+
* @param [offset=null] The position to add the track(s) at. If not provided, the track(s) will be added at the end of the queue.
|
|
705
|
+
*/
|
|
706
|
+
add(track: Track | Track[], offset?: number): Promise<void>;
|
|
707
|
+
/**
|
|
708
|
+
* Removes a track from the queue.
|
|
709
|
+
* @param position The position to remove the track at.
|
|
710
|
+
* @param end The end position to remove the track at.
|
|
711
|
+
*/
|
|
712
|
+
remove(position?: number): Promise<Track[]>;
|
|
713
|
+
remove(start: number, end: number): Promise<Track[]>;
|
|
714
|
+
/**
|
|
715
|
+
* Clears the queue.
|
|
716
|
+
*/
|
|
717
|
+
clear(): Promise<void>;
|
|
718
|
+
/**
|
|
719
|
+
* @returns The size of the queue.
|
|
720
|
+
*/
|
|
721
|
+
size(): Promise<number>;
|
|
722
|
+
/**
|
|
723
|
+
* @returns The total size of the queue.
|
|
724
|
+
*/
|
|
725
|
+
totalSize(): Promise<number>;
|
|
726
|
+
/**
|
|
727
|
+
* @returns The total duration of the queue.
|
|
728
|
+
*/
|
|
729
|
+
duration(): Promise<number>;
|
|
730
|
+
/**
|
|
731
|
+
* Shuffles the queue.
|
|
732
|
+
*/
|
|
733
|
+
shuffle(): Promise<void>;
|
|
734
|
+
/**
|
|
735
|
+
* Shuffles the queue by user.
|
|
736
|
+
*/
|
|
737
|
+
userBlockShuffle(): Promise<void>;
|
|
738
|
+
/**
|
|
739
|
+
* Shuffles the queue by round-robin.
|
|
740
|
+
*/
|
|
741
|
+
roundRobinShuffle(): Promise<void>;
|
|
742
|
+
/**
|
|
743
|
+
* Removes the first track from the queue.
|
|
744
|
+
*/
|
|
407
745
|
dequeue(): Promise<Track | undefined>;
|
|
746
|
+
/**
|
|
747
|
+
* Adds a track to the front of the queue.
|
|
748
|
+
*/
|
|
408
749
|
enqueueFront(track: Track | Track[]): Promise<void>;
|
|
750
|
+
/**
|
|
751
|
+
* @returns The tracks in the queue.
|
|
752
|
+
*/
|
|
409
753
|
getTracks(): Promise<Track[]>;
|
|
754
|
+
/**
|
|
755
|
+
* @returns The tracks in the queue from start to end.
|
|
756
|
+
*/
|
|
410
757
|
getSlice(start?: number, end?: number): Promise<Track[]>;
|
|
758
|
+
/**
|
|
759
|
+
* Modifies the queue at the specified index.
|
|
760
|
+
*/
|
|
411
761
|
modifyAt(start: number, deleteCount?: number, ...items: Track[]): Promise<Track[]>;
|
|
762
|
+
/**
|
|
763
|
+
* Maps the queue to a new array.
|
|
764
|
+
*/
|
|
412
765
|
mapAsync<T>(callback: (track: Track, index: number, array: Track[]) => T): Promise<T[]>;
|
|
766
|
+
/**
|
|
767
|
+
* Filters the queue.
|
|
768
|
+
*/
|
|
413
769
|
filterAsync(callback: (track: Track, index: number, array: Track[]) => boolean): Promise<Track[]>;
|
|
770
|
+
/**
|
|
771
|
+
* Finds the first track in the queue that satisfies the provided testing function.
|
|
772
|
+
*/
|
|
414
773
|
findAsync(callback: (track: Track, index: number, array: Track[]) => boolean): Promise<Track | undefined>;
|
|
774
|
+
/**
|
|
775
|
+
* Tests whether at least one element in the queue passes the test implemented by the provided function.
|
|
776
|
+
*/
|
|
415
777
|
someAsync(callback: (track: Track, index: number, array: Track[]) => boolean): Promise<boolean>;
|
|
778
|
+
/**
|
|
779
|
+
* Tests whether all elements in the queue pass the test implemented by the provided function.
|
|
780
|
+
*/
|
|
416
781
|
everyAsync(callback: (track: Track, index: number, array: Track[]) => boolean): Promise<boolean>;
|
|
417
782
|
}
|
|
418
783
|
|
|
@@ -422,41 +787,57 @@ declare class Queue extends Array<Track> implements IQueue {
|
|
|
422
787
|
interface ManagerOptions {
|
|
423
788
|
/** The state storage options.
|
|
424
789
|
*
|
|
425
|
-
* @default { type: StateStorageType.Collection }
|
|
790
|
+
* @default { type: StateStorageType.Collection, deleteInactivePlayers: true }
|
|
426
791
|
*/
|
|
427
792
|
stateStorage?: StateStorageOptions;
|
|
428
|
-
/** Enable priority mode over least player count or load balancing?
|
|
793
|
+
/** Enable priority mode over least player count or load balancing?
|
|
794
|
+
* @default false
|
|
795
|
+
*/
|
|
429
796
|
enablePriorityMode?: boolean;
|
|
430
|
-
/** Automatically play the next track when the current one ends.
|
|
797
|
+
/** Automatically play the next track when the current one ends.
|
|
798
|
+
* @default true
|
|
799
|
+
*/
|
|
431
800
|
playNextOnEnd?: boolean;
|
|
432
801
|
/** An array of search platforms to use for autoplay. First to last matters
|
|
433
802
|
* Use enum `AutoPlayPlatform`.
|
|
803
|
+
* @default [AutoPlayPlatform.YouTube]
|
|
434
804
|
*/
|
|
435
805
|
autoPlaySearchPlatforms?: AutoPlayPlatform[];
|
|
436
806
|
/** The client ID to use. */
|
|
437
807
|
clientId?: string;
|
|
438
808
|
/** Value to use for the `Client-Name` header. */
|
|
439
809
|
clientName?: string;
|
|
440
|
-
/** The array of shard IDs connected to this manager instance.
|
|
810
|
+
/** The array of shard IDs connected to this manager instance.
|
|
811
|
+
* @default 0
|
|
812
|
+
*/
|
|
441
813
|
clusterId?: number;
|
|
442
814
|
/** List of plugins to load. */
|
|
443
815
|
enabledPlugins?: Plugin[];
|
|
444
816
|
/** The default search platform to use.
|
|
445
|
-
* Use enum `SearchPlatform`.
|
|
817
|
+
* Use enum `SearchPlatform`.
|
|
818
|
+
* @default SearchPlatform.YouTube
|
|
819
|
+
*/
|
|
446
820
|
defaultSearchPlatform?: SearchPlatform;
|
|
447
821
|
/** The last.fm API key.
|
|
448
822
|
* If you need to create one go here: https://www.last.fm/api/account/create.
|
|
449
823
|
* If you already have one, get it from here: https://www.last.fm/api/accounts. */
|
|
450
824
|
lastFmApiKey?: string;
|
|
451
|
-
/** The maximum number of previous tracks to store.
|
|
825
|
+
/** The maximum number of previous tracks to store.
|
|
826
|
+
* @default 20
|
|
827
|
+
*/
|
|
452
828
|
maxPreviousTracks?: number;
|
|
453
829
|
/** The array of nodes to connect to. */
|
|
454
830
|
nodes?: NodeOptions[];
|
|
455
|
-
/** Whether the YouTube video titles should be replaced if the Author does not exactly match.
|
|
831
|
+
/** Whether the YouTube video titles should be replaced if the Author does not exactly match.
|
|
832
|
+
* @default false
|
|
833
|
+
*/
|
|
456
834
|
normalizeYouTubeTitles?: boolean;
|
|
457
835
|
/** An array of track properties to keep. `track` will always be present. */
|
|
458
836
|
trackPartial?: TrackPartial[];
|
|
459
|
-
/** Use the least amount of players or least load?
|
|
837
|
+
/** Use the least amount of players or least load?
|
|
838
|
+
* Use enum `UseNodeOptions`.
|
|
839
|
+
* @default UseNodeOptions.LeastPlayers
|
|
840
|
+
*/
|
|
460
841
|
useNode?: UseNodeOptions.LeastLoad | UseNodeOptions.LeastPlayers;
|
|
461
842
|
/**
|
|
462
843
|
* Function to send data to the websocket.
|
|
@@ -471,6 +852,8 @@ interface ManagerOptions {
|
|
|
471
852
|
interface StateStorageOptions {
|
|
472
853
|
type: StateStorageType;
|
|
473
854
|
redisConfig?: RedisConfig;
|
|
855
|
+
jsonConfig?: JsonConfig;
|
|
856
|
+
deleteInactivePlayers?: boolean;
|
|
474
857
|
}
|
|
475
858
|
/**
|
|
476
859
|
* Payload
|
|
@@ -485,6 +868,57 @@ interface Payload {
|
|
|
485
868
|
self_deaf: boolean;
|
|
486
869
|
};
|
|
487
870
|
}
|
|
871
|
+
/**
|
|
872
|
+
* Node Options
|
|
873
|
+
*/
|
|
874
|
+
interface NodeOptions {
|
|
875
|
+
/** The host for the node. */
|
|
876
|
+
host: string;
|
|
877
|
+
/** The port for the node.
|
|
878
|
+
* @default 2333
|
|
879
|
+
*/
|
|
880
|
+
port?: number;
|
|
881
|
+
/** The password for the node.
|
|
882
|
+
* @default "youshallnotpass"
|
|
883
|
+
*/
|
|
884
|
+
password?: string;
|
|
885
|
+
/** Whether the host uses SSL.
|
|
886
|
+
* @default false
|
|
887
|
+
*/
|
|
888
|
+
useSSL?: boolean;
|
|
889
|
+
/** The identifier for the node.
|
|
890
|
+
* @default host
|
|
891
|
+
*/
|
|
892
|
+
identifier?: string;
|
|
893
|
+
/** The maxRetryAttempts for the node.
|
|
894
|
+
* @default 30
|
|
895
|
+
*/
|
|
896
|
+
maxRetryAttempts?: number;
|
|
897
|
+
/** The retryDelayMs for the node.
|
|
898
|
+
* @default 60000
|
|
899
|
+
*/
|
|
900
|
+
retryDelayMs?: number;
|
|
901
|
+
/** Whether to resume the previous session.
|
|
902
|
+
* @default false
|
|
903
|
+
*/
|
|
904
|
+
enableSessionResumeOption?: boolean;
|
|
905
|
+
/** The time the lavalink server will wait before it removes the player.
|
|
906
|
+
* @default 1000
|
|
907
|
+
*/
|
|
908
|
+
sessionTimeoutMs?: number;
|
|
909
|
+
/** The timeout used for api calls.
|
|
910
|
+
* @default 10000
|
|
911
|
+
*/
|
|
912
|
+
apiRequestTimeoutMs?: number;
|
|
913
|
+
/** Priority of the node.
|
|
914
|
+
* @default 0
|
|
915
|
+
*/
|
|
916
|
+
nodePriority?: number;
|
|
917
|
+
/** Whether the node is a NodeLink.
|
|
918
|
+
* @default false
|
|
919
|
+
*/
|
|
920
|
+
isNodeLink?: boolean;
|
|
921
|
+
}
|
|
488
922
|
/**
|
|
489
923
|
* Discord Packet
|
|
490
924
|
*/
|
|
@@ -546,6 +980,12 @@ interface RedisConfig {
|
|
|
546
980
|
db?: number;
|
|
547
981
|
prefix?: string;
|
|
548
982
|
}
|
|
983
|
+
/**
|
|
984
|
+
* JSON Configuration
|
|
985
|
+
*/
|
|
986
|
+
interface JsonConfig {
|
|
987
|
+
path: string;
|
|
988
|
+
}
|
|
549
989
|
/**
|
|
550
990
|
* Player State Update Event
|
|
551
991
|
*/
|
|
@@ -900,7 +1340,7 @@ interface VoiceServer {
|
|
|
900
1340
|
}
|
|
901
1341
|
interface Extendable {
|
|
902
1342
|
Player: typeof Player;
|
|
903
|
-
Queue: typeof
|
|
1343
|
+
Queue: typeof MemoryQueue | typeof RedisQueue | typeof JsonQueue;
|
|
904
1344
|
Node: typeof Node;
|
|
905
1345
|
}
|
|
906
1346
|
/**
|
|
@@ -1052,62 +1492,6 @@ interface PlayerUpdate {
|
|
|
1052
1492
|
ping: number;
|
|
1053
1493
|
};
|
|
1054
1494
|
}
|
|
1055
|
-
/**
|
|
1056
|
-
* Node Options
|
|
1057
|
-
*/
|
|
1058
|
-
interface NodeOptions {
|
|
1059
|
-
/** The host for the node. */
|
|
1060
|
-
host: string;
|
|
1061
|
-
/** The port for the node. */
|
|
1062
|
-
port?: number;
|
|
1063
|
-
/** The password for the node. */
|
|
1064
|
-
password?: string;
|
|
1065
|
-
/** Whether the host uses SSL. */
|
|
1066
|
-
useSSL?: boolean;
|
|
1067
|
-
/** The identifier for the node. */
|
|
1068
|
-
identifier?: string;
|
|
1069
|
-
/** The maxRetryAttempts for the node. */
|
|
1070
|
-
maxRetryAttempts?: number;
|
|
1071
|
-
/** The retryDelayMs for the node. */
|
|
1072
|
-
retryDelayMs?: number;
|
|
1073
|
-
/** Whether to resume the previous session. */
|
|
1074
|
-
enableSessionResumeOption?: boolean;
|
|
1075
|
-
/** The time the lavalink server will wait before it removes the player. */
|
|
1076
|
-
sessionTimeoutMs?: number;
|
|
1077
|
-
/** The timeout used for api calls. */
|
|
1078
|
-
apiRequestTimeoutMs?: number;
|
|
1079
|
-
/** Priority of the node. */
|
|
1080
|
-
nodePriority?: number;
|
|
1081
|
-
/** Whether the node is a NodeLink. */
|
|
1082
|
-
isNodeLink?: boolean;
|
|
1083
|
-
}
|
|
1084
|
-
/**
|
|
1085
|
-
* NodeOptions interface
|
|
1086
|
-
*/
|
|
1087
|
-
interface NodeOptions {
|
|
1088
|
-
/** The host for the node. */
|
|
1089
|
-
host: string;
|
|
1090
|
-
/** The port for the node. */
|
|
1091
|
-
port?: number;
|
|
1092
|
-
/** The password for the node. */
|
|
1093
|
-
password?: string;
|
|
1094
|
-
/** Whether the host uses SSL. */
|
|
1095
|
-
useSSL?: boolean;
|
|
1096
|
-
/** The identifier for the node. */
|
|
1097
|
-
identifier?: string;
|
|
1098
|
-
/** The maxRetryAttempts for the node. */
|
|
1099
|
-
maxRetryAttempts?: number;
|
|
1100
|
-
/** The retryDelayMs for the node. */
|
|
1101
|
-
retryDelayMs?: number;
|
|
1102
|
-
/** Whether to resume the previous session. */
|
|
1103
|
-
enableSessionResumeOption?: boolean;
|
|
1104
|
-
/** The time the lavalink server will wait before it removes the player. */
|
|
1105
|
-
sessionTimeoutMs?: number;
|
|
1106
|
-
/** The timeout used for api calls. */
|
|
1107
|
-
apiRequestTimeoutMs?: number;
|
|
1108
|
-
/** Priority of the node. */
|
|
1109
|
-
nodePriority?: number;
|
|
1110
|
-
}
|
|
1111
1495
|
/**
|
|
1112
1496
|
* NodeStats interface
|
|
1113
1497
|
*/
|
|
@@ -2058,15 +2442,21 @@ declare class Manager extends EventEmitter {
|
|
|
2058
2442
|
*/
|
|
2059
2443
|
serializePlayer(player: Player): Promise<Record<string, unknown>>;
|
|
2060
2444
|
/**
|
|
2061
|
-
*
|
|
2445
|
+
* Cleans up inactive players by removing their state files from the file system.
|
|
2446
|
+
* This is done to prevent stale state files from accumulating on the file system.
|
|
2447
|
+
*/
|
|
2448
|
+
cleanupInactivePlayers(): Promise<void>;
|
|
2449
|
+
/**
|
|
2450
|
+
* Cleans up an inactive player by removing its state files from the file system.
|
|
2062
2451
|
* This is done to prevent stale state files from accumulating on the file system.
|
|
2452
|
+
* @param guildId The guild ID of the player to clean up.
|
|
2063
2453
|
*/
|
|
2064
|
-
|
|
2454
|
+
cleanupInactivePlayer(guildId: string): Promise<void>;
|
|
2065
2455
|
/**
|
|
2066
2456
|
* Clears all player states from the file system.
|
|
2067
2457
|
* This is done to prevent stale state files from accumulating on the file system.
|
|
2068
2458
|
*/
|
|
2069
|
-
private
|
|
2459
|
+
private clearAllStoredPlayers;
|
|
2070
2460
|
/**
|
|
2071
2461
|
* Returns the nodes that has the least load.
|
|
2072
2462
|
* The load is calculated by dividing the lavalink load by the number of cores.
|
|
@@ -2968,5 +3358,36 @@ declare class OceanicManager extends Manager {
|
|
|
2968
3358
|
protected send(packet: GatewayVoiceStateUpdate): void;
|
|
2969
3359
|
}
|
|
2970
3360
|
|
|
2971
|
-
|
|
2972
|
-
|
|
3361
|
+
/**
|
|
3362
|
+
* Seyfert wrapper for Magmastream.
|
|
3363
|
+
*
|
|
3364
|
+
* @note This wrapper does require the manual implementation of the "raw" and "ready" events, to call the `updateVoiceState` and `init` methods respectively.
|
|
3365
|
+
*
|
|
3366
|
+
* @example
|
|
3367
|
+
* ```typescript
|
|
3368
|
+
* const client = new Client();
|
|
3369
|
+
* const manager = new SeyfertManager(client, options);
|
|
3370
|
+
*
|
|
3371
|
+
* client.events.values.RAW = {
|
|
3372
|
+
* data: { name: "raw" },
|
|
3373
|
+
* run: async (data) => {
|
|
3374
|
+
* await manager.updateVoiceState(data);
|
|
3375
|
+
* }
|
|
3376
|
+
* }
|
|
3377
|
+
*
|
|
3378
|
+
* client.events.values.READY = {
|
|
3379
|
+
* data: { name: "ready" },
|
|
3380
|
+
* run: async (user, client) => {
|
|
3381
|
+
* await manager.init({ clientId: client.botId });
|
|
3382
|
+
* }
|
|
3383
|
+
* }
|
|
3384
|
+
* ```
|
|
3385
|
+
*/
|
|
3386
|
+
declare class SeyfertManager extends Manager {
|
|
3387
|
+
readonly client: Client$3;
|
|
3388
|
+
constructor(client: Client$3, options?: ManagerOptions);
|
|
3389
|
+
protected send(packet: GatewayVoiceStateUpdate): void;
|
|
3390
|
+
}
|
|
3391
|
+
|
|
3392
|
+
export { AutoPlayPlatform, AutoPlayUtils, AvailableFilters, DetritusManager, DiscordJSManager, ErisManager, Filters, JsonQueue, LoadTypes, Manager, ManagerEventTypes, MemoryQueue, Node$1 as Node, OceanicManager, Player, PlayerStateEventTypes, Plugin$1 as Plugin, RedisQueue, Rest, SearchPlatform, SeverityTypes, SeyfertManager, SponsorBlockSegment, StateStorageType, StateTypes, Structure, TrackEndReasonTypes, TrackPartial, TrackSourceTypes, TrackUtils, UseNodeOptions };
|
|
3393
|
+
export type { CPUStats, DiscordPacket, EndSpeakingEventVoiceReceiver, EndSpeakingEventVoiceReceiverData, EqualizerBand, ErrorOrEmptySearchResult, Exception, Extendable, FrameStats, IQueue, JsonConfig, LavaPlayer, LavalinkInfo, LavalinkResponse, LoadType, Lyrics, LyricsEvent, LyricsEventType, LyricsFoundEvent, LyricsLine, LyricsLineEvent, LyricsNotFoundEvent, ManagerEvents, ManagerInitOptions, ManagerOptions, MemoryStats, NodeLinkGetLyrics, NodeLinkGetLyricsEmpty, NodeLinkGetLyricsError, NodeLinkGetLyricsMultiple, NodeLinkGetLyricsSingle, NodeMessage, NodeOptions, NodeStats, Payload, PlayOptions, PlayerEvent, PlayerEventType, PlayerEvents, PlayerOptions, PlayerStateChangeData, PlayerStateUpdateEvent, PlayerUpdate, PlayerUpdateVoiceState, PlaylistData, PlaylistInfoData, PlaylistRawData, PlaylistSearchResult, RedisConfig, SearchQuery, SearchResult, SearchSearchResult, Severity, Sizes, SponsorBlockChapterStarted, SponsorBlockChaptersLoaded, SponsorBlockSegmentEventType, SponsorBlockSegmentEvents, SponsorBlockSegmentSkipped, SponsorBlockSegmentsLoaded, StartSpeakingEventVoiceReceiver, StartSpeakingEventVoiceReceiverData, StateStorageOptions, Track, TrackData, TrackDataInfo, TrackEndEvent, TrackEndReason, TrackExceptionEvent, TrackPluginInfo, TrackSearchResult, TrackSourceName, TrackStartEvent, TrackStuckEvent, UseNodeOption, VoicePacket, VoiceReceiverEvent, VoiceServer, VoiceServerUpdate, VoiceState, WebSocketClosedEvent };
|