lavalink-client 2.3.0 → 2.3.3
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 +31 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/structures/Constants.d.ts +44 -1
- package/dist/cjs/structures/Constants.js +45 -1
- package/dist/cjs/structures/LavalinkManager.js +80 -5
- package/dist/cjs/structures/Node.js +202 -20
- package/dist/cjs/structures/Player.d.ts +0 -1
- package/dist/cjs/structures/Player.js +73 -6
- package/dist/cjs/structures/Queue.js +29 -2
- package/dist/cjs/structures/Types/Manager.d.ts +25 -0
- package/dist/cjs/structures/Types/Queue.d.ts +1 -1
- package/dist/cjs/structures/Utils.js +68 -18
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/structures/Constants.d.ts +44 -1
- package/dist/esm/structures/Constants.js +44 -0
- package/dist/esm/structures/LavalinkManager.js +81 -6
- package/dist/esm/structures/Node.js +203 -21
- package/dist/esm/structures/Player.d.ts +0 -1
- package/dist/esm/structures/Player.js +73 -6
- package/dist/esm/structures/Queue.js +29 -2
- package/dist/esm/structures/Types/Manager.d.ts +25 -0
- package/dist/esm/structures/Types/Queue.d.ts +1 -1
- package/dist/esm/structures/Utils.js +68 -18
- package/dist/types/index.d.ts +1 -0
- package/dist/types/structures/Constants.d.ts +44 -1
- package/dist/types/structures/Player.d.ts +0 -1
- package/dist/types/structures/Types/Manager.d.ts +25 -0
- package/dist/types/structures/Types/Queue.d.ts +1 -1
- package/package.json +1 -1
- package/dist/index.d.ts +0 -10
- package/dist/index.js +0 -13
- package/dist/structures/Filters.d.ts +0 -230
- package/dist/structures/Filters.js +0 -472
- package/dist/structures/LavalinkManager.d.ts +0 -47
- package/dist/structures/LavalinkManager.js +0 -36
- package/dist/structures/LavalinkManagerStatics.d.ts +0 -3
- package/dist/structures/LavalinkManagerStatics.js +0 -76
- package/dist/structures/Node.d.ts +0 -171
- package/dist/structures/Node.js +0 -462
- package/dist/structures/NodeManager.d.ts +0 -58
- package/dist/structures/NodeManager.js +0 -25
- package/dist/structures/Player.d.ts +0 -101
- package/dist/structures/Player.js +0 -232
- package/dist/structures/PlayerManager.d.ts +0 -62
- package/dist/structures/PlayerManager.js +0 -26
- package/dist/structures/Queue.d.ts +0 -93
- package/dist/structures/Queue.js +0 -160
- package/dist/structures/QueueManager.d.ts +0 -77
- package/dist/structures/QueueManager.js +0 -74
- package/dist/structures/Track.d.ts +0 -27
- package/dist/structures/Track.js +0 -2
- package/dist/structures/Utils.d.ts +0 -183
- package/dist/structures/Utils.js +0 -43
package/dist/structures/Queue.js
DELETED
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Queue = exports.DefaultQueueStore = exports.QueueSaver = void 0;
|
|
4
|
-
class QueueSaver {
|
|
5
|
-
constructor(storeManager, options) {
|
|
6
|
-
this._ = storeManager;
|
|
7
|
-
this.options = options;
|
|
8
|
-
}
|
|
9
|
-
async get(key) {
|
|
10
|
-
return new Queue(await this._.parse(await this._.get(key)), key, this);
|
|
11
|
-
}
|
|
12
|
-
async delete(key) {
|
|
13
|
-
return await this._.delete(key);
|
|
14
|
-
}
|
|
15
|
-
async set(key, value) {
|
|
16
|
-
return await this._.set(key, await this._.stringify(value));
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
exports.QueueSaver = QueueSaver;
|
|
20
|
-
class DefaultQueueStore {
|
|
21
|
-
data = new Map();
|
|
22
|
-
constructor() {
|
|
23
|
-
}
|
|
24
|
-
get(key) {
|
|
25
|
-
return this.data.get(key);
|
|
26
|
-
}
|
|
27
|
-
set(key, value) {
|
|
28
|
-
return this.data.set(key, value);
|
|
29
|
-
}
|
|
30
|
-
delete(key) {
|
|
31
|
-
return this.data.delete(key);
|
|
32
|
-
}
|
|
33
|
-
stringify(value) {
|
|
34
|
-
return value;
|
|
35
|
-
}
|
|
36
|
-
parse(value) {
|
|
37
|
-
return value;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
exports.DefaultQueueStore = DefaultQueueStore;
|
|
41
|
-
class Queue {
|
|
42
|
-
_nextTracks = [];
|
|
43
|
-
_previousTracks = [];
|
|
44
|
-
_currentTrack = null;
|
|
45
|
-
_guildId = "";
|
|
46
|
-
_QueueSaver = null;
|
|
47
|
-
constructor(data = {}, guildId, QueueSaver) {
|
|
48
|
-
this._guildId = guildId;
|
|
49
|
-
this._QueueSaver = QueueSaver;
|
|
50
|
-
this._currentTrack = this.isTrack(data.currentTrack) ? data.currentTrack : null;
|
|
51
|
-
this._previousTracks = Array.isArray(data.previousTracks) && data.previousTracks.some(track => this.isTrack(track)) ? data.previousTracks.filter(track => this.isTrack(track)) : [];
|
|
52
|
-
this._nextTracks = Array.isArray(data.nextTracks) && data.nextTracks.some(track => this.isTrack(track)) ? data.nextTracks.filter(track => this.isTrack(track)) : [];
|
|
53
|
-
// TODO bind event Function for trackEnd
|
|
54
|
-
}
|
|
55
|
-
isTrack(data) {
|
|
56
|
-
return typeof data.encodedTrack === "string" && typeof data.info === "object";
|
|
57
|
-
}
|
|
58
|
-
/** The Current Playing Track */
|
|
59
|
-
get currentTrack() {
|
|
60
|
-
return this._currentTrack || null;
|
|
61
|
-
}
|
|
62
|
-
/** All Previous Track(s) [with the limited amount] */
|
|
63
|
-
get previousTracks() {
|
|
64
|
-
return this._previousTracks || [];
|
|
65
|
-
}
|
|
66
|
-
/** All Upcoming Track(s) */
|
|
67
|
-
get nextTracks() {
|
|
68
|
-
return this._nextTracks || [];
|
|
69
|
-
}
|
|
70
|
-
/** The Size of the upcoming Track(s) */
|
|
71
|
-
get size() {
|
|
72
|
-
return this.nextTracks.length;
|
|
73
|
-
}
|
|
74
|
-
/** The Size of the previous Track(s) */
|
|
75
|
-
get previousSize() {
|
|
76
|
-
return this.previousTracks.length;
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* @returns The Queue, but in a raw State, which allows easier handling for the storeManager
|
|
80
|
-
*/
|
|
81
|
-
getRaw() {
|
|
82
|
-
return {
|
|
83
|
-
currentTrack: this.currentTrack,
|
|
84
|
-
previousTracks: this.previousTracks,
|
|
85
|
-
nextTracks: this.nextTracks,
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Add a Track to the Queue, and after saved in the "db" it returns the amount of the Tracks
|
|
90
|
-
* @param Track
|
|
91
|
-
* @param index At what position to add the Track
|
|
92
|
-
* @returns Queue-Size (for the next Tracks)
|
|
93
|
-
*/
|
|
94
|
-
async add(TrackOrTracks, index) {
|
|
95
|
-
if (typeof index === "number")
|
|
96
|
-
return await this.splice(index, 0, TrackOrTracks);
|
|
97
|
-
// add the track(s)
|
|
98
|
-
this._nextTracks.push(...(Array.isArray(TrackOrTracks) ? TrackOrTracks : [TrackOrTracks]).filter(v => this.isTrack(v)));
|
|
99
|
-
// save the queue
|
|
100
|
-
await this._QueueSaver.set(this._guildId, this.getRaw());
|
|
101
|
-
return this.size;
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
*
|
|
105
|
-
* @param index Where to remove the Track
|
|
106
|
-
* @param amount How many Tracks to remove?
|
|
107
|
-
* @param TrackOrTracks Want to Add more Tracks?
|
|
108
|
-
*/
|
|
109
|
-
async splice(index, amount, TrackOrTracks) {
|
|
110
|
-
if (!this.size)
|
|
111
|
-
return null;
|
|
112
|
-
let spliced = TrackOrTracks ? this._nextTracks.splice(index, amount, ...(Array.isArray(TrackOrTracks) ? TrackOrTracks : [TrackOrTracks]).filter(v => this.isTrack(v))) : this._nextTracks.splice(index, amount);
|
|
113
|
-
// save the queue
|
|
114
|
-
await this._QueueSaver.set(this._guildId, this.getRaw());
|
|
115
|
-
spliced = (Array.isArray(spliced) ? spliced : [spliced]);
|
|
116
|
-
return spliced.length === 1 ? spliced[0] : spliced;
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Add a Track to the Previous Track list, and after saved in the "db" it returns the amount of the previous Tracks
|
|
120
|
-
* @param Track
|
|
121
|
-
* @returns PreviousTracksSize
|
|
122
|
-
*/
|
|
123
|
-
async addPrevious(Track) {
|
|
124
|
-
if (!this.isTrack(Track))
|
|
125
|
-
return;
|
|
126
|
-
this._previousTracks.unshift(Track);
|
|
127
|
-
if (this.previousSize > this._QueueSaver.options.maxPreviousTracks)
|
|
128
|
-
this._previousTracks.pop();
|
|
129
|
-
await this._QueueSaver.set(this._guildId, this.getRaw());
|
|
130
|
-
return this.previousSize;
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Add a Track to the Previous Track list, and after saved in the "db" it returns the amount of the previous Tracks
|
|
134
|
-
* @param Track
|
|
135
|
-
* @returns PreviousTracksSize
|
|
136
|
-
*/
|
|
137
|
-
async setCurrent(Track) {
|
|
138
|
-
this._currentTrack = Track;
|
|
139
|
-
await this._QueueSaver.set(this._guildId, this.getRaw());
|
|
140
|
-
return this.currentTrack;
|
|
141
|
-
}
|
|
142
|
-
/** @private @hidden */
|
|
143
|
-
async _trackEnd(addBackToQueue = false) {
|
|
144
|
-
if (this.currentTrack) { // if there was a current Track -> Add it
|
|
145
|
-
this._previousTracks.unshift(this.currentTrack);
|
|
146
|
-
if (this.previousSize > this._QueueSaver.options.maxPreviousTracks)
|
|
147
|
-
this._previousTracks.pop();
|
|
148
|
-
}
|
|
149
|
-
// change the current Track to the next upcoming one
|
|
150
|
-
this._currentTrack = this._nextTracks.shift() || null;
|
|
151
|
-
// and if repeatMode == queue, add it back to the queue!
|
|
152
|
-
if (addBackToQueue && this.currentTrack)
|
|
153
|
-
this._nextTracks.push(this.currentTrack);
|
|
154
|
-
// save it in the DB
|
|
155
|
-
await this._QueueSaver.set(this._guildId, this.getRaw());
|
|
156
|
-
// return the new current Track
|
|
157
|
-
return this.currentTrack;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
exports.Queue = Queue;
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { EventEmitter } from "stream";
|
|
3
|
-
import { LavalinkManager } from "./LavalinkManager";
|
|
4
|
-
import { Queue } from "./Queue";
|
|
5
|
-
interface QueueManagerEvents {
|
|
6
|
-
/**
|
|
7
|
-
* Emitted when a Queue is created.
|
|
8
|
-
* @event Manager.playerManager#create
|
|
9
|
-
*/
|
|
10
|
-
"create": (queue: Queue) => void;
|
|
11
|
-
}
|
|
12
|
-
export interface QueueManager {
|
|
13
|
-
on<U extends keyof QueueManagerEvents>(event: U, listener: QueueManagerEvents[U]): this;
|
|
14
|
-
emit<U extends keyof QueueManagerEvents>(event: U, ...args: Parameters<QueueManagerEvents[U]>): boolean;
|
|
15
|
-
/** @private */
|
|
16
|
-
queues: QueueSaver;
|
|
17
|
-
/** @private */
|
|
18
|
-
LavalinkManager: LavalinkManager;
|
|
19
|
-
}
|
|
20
|
-
export interface QueueStoreManager extends Record<any, any> {
|
|
21
|
-
/** @async get a Value */
|
|
22
|
-
get: (key: unknown) => any;
|
|
23
|
-
/** @async Set a value inside a key */
|
|
24
|
-
set: (key: unknown, value: unknown) => any;
|
|
25
|
-
/** @async Delete a Database Value based of it's key */
|
|
26
|
-
delete: (key: unknown) => any;
|
|
27
|
-
/** @async Transform the value(s) inside of the QueueStoreManager */
|
|
28
|
-
stringify: (value: unknown) => any;
|
|
29
|
-
/** @async Parse the saved value back to the Queue */
|
|
30
|
-
parse: (value: unknown) => Queue;
|
|
31
|
-
}
|
|
32
|
-
export interface ManagerQueueOptions {
|
|
33
|
-
maxPreviousTracks: number;
|
|
34
|
-
}
|
|
35
|
-
export interface QueueSaver {
|
|
36
|
-
/** @private */
|
|
37
|
-
_: QueueStoreManager;
|
|
38
|
-
/** @private */
|
|
39
|
-
options: ManagerQueueOptions;
|
|
40
|
-
}
|
|
41
|
-
export declare class QueueSaver {
|
|
42
|
-
constructor(QueueStoreManager: QueueStoreManager, options: ManagerQueueOptions);
|
|
43
|
-
get(key: string): Promise<Queue>;
|
|
44
|
-
delete(key: string): Promise<any>;
|
|
45
|
-
set(key: string, value: any): Promise<any>;
|
|
46
|
-
}
|
|
47
|
-
export declare class DefaultQueueStore {
|
|
48
|
-
private data;
|
|
49
|
-
constructor();
|
|
50
|
-
get(key: any): any;
|
|
51
|
-
set(key: any, value: any): Map<any, any>;
|
|
52
|
-
delete(key: any): boolean;
|
|
53
|
-
stringify(value: any): any;
|
|
54
|
-
parse(value: any): any;
|
|
55
|
-
}
|
|
56
|
-
export declare class QueueManager extends EventEmitter {
|
|
57
|
-
constructor(LavalinkManager: LavalinkManager);
|
|
58
|
-
/**
|
|
59
|
-
* Generate a base Empty Queue, for easier use
|
|
60
|
-
* @param guildId
|
|
61
|
-
* @returns
|
|
62
|
-
*/
|
|
63
|
-
private generateEmptyQueue;
|
|
64
|
-
/**
|
|
65
|
-
* Get a Queue of a Guild
|
|
66
|
-
* @param guildId
|
|
67
|
-
* @returns
|
|
68
|
-
*/
|
|
69
|
-
getQueue(guildId: string): Promise<Queue>;
|
|
70
|
-
/**
|
|
71
|
-
* Delete a Queue
|
|
72
|
-
* @param guildId
|
|
73
|
-
* @returns
|
|
74
|
-
*/
|
|
75
|
-
private deleteQueue;
|
|
76
|
-
}
|
|
77
|
-
export {};
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.QueueManager = exports.DefaultQueueStore = exports.QueueSaver = void 0;
|
|
4
|
-
const stream_1 = require("stream");
|
|
5
|
-
const Queue_1 = require("./Queue");
|
|
6
|
-
class QueueSaver {
|
|
7
|
-
constructor(storeManager, options) {
|
|
8
|
-
this._ = storeManager;
|
|
9
|
-
this.options = options;
|
|
10
|
-
}
|
|
11
|
-
async get(key) {
|
|
12
|
-
return new Queue_1.Queue(await this._.parse(await this._.get(key)), key, this);
|
|
13
|
-
}
|
|
14
|
-
async delete(key) {
|
|
15
|
-
return await this._.delete(key);
|
|
16
|
-
}
|
|
17
|
-
async set(key, value) {
|
|
18
|
-
return await this._.set(key, await this._.stringify(value));
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
exports.QueueSaver = QueueSaver;
|
|
22
|
-
class DefaultQueueStore {
|
|
23
|
-
data = new Map();
|
|
24
|
-
constructor() {
|
|
25
|
-
}
|
|
26
|
-
get(key) {
|
|
27
|
-
return this.data.get(key);
|
|
28
|
-
}
|
|
29
|
-
set(key, value) {
|
|
30
|
-
return this.data.set(key, value);
|
|
31
|
-
}
|
|
32
|
-
delete(key) {
|
|
33
|
-
return this.data.delete(key);
|
|
34
|
-
}
|
|
35
|
-
stringify(value) {
|
|
36
|
-
return value;
|
|
37
|
-
}
|
|
38
|
-
parse(value) {
|
|
39
|
-
return value;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
exports.DefaultQueueStore = DefaultQueueStore;
|
|
43
|
-
class QueueManager extends stream_1.EventEmitter {
|
|
44
|
-
constructor(LavalinkManager) {
|
|
45
|
-
super();
|
|
46
|
-
this.LavalinkManager = LavalinkManager;
|
|
47
|
-
this.queues = new QueueSaver(this.LavalinkManager.options.queueStore || new DefaultQueueStore(), this.LavalinkManager.options.queueOptions);
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Generate a base Empty Queue, for easier use
|
|
51
|
-
* @param guildId
|
|
52
|
-
* @returns
|
|
53
|
-
*/
|
|
54
|
-
generateEmptyQueue(guildId) {
|
|
55
|
-
return new Queue_1.Queue({}, guildId, this.queues);
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Get a Queue of a Guild
|
|
59
|
-
* @param guildId
|
|
60
|
-
* @returns
|
|
61
|
-
*/
|
|
62
|
-
async getQueue(guildId) {
|
|
63
|
-
return await this.queues.get(guildId) || this.generateEmptyQueue(guildId);
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Delete a Queue
|
|
67
|
-
* @param guildId
|
|
68
|
-
* @returns
|
|
69
|
-
*/
|
|
70
|
-
async deleteQueue(guildId) {
|
|
71
|
-
return await this.queues.delete(guildId);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
exports.QueueManager = QueueManager;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
export interface LavalinkTrackDataInfo {
|
|
2
|
-
identifier: string;
|
|
3
|
-
title: string;
|
|
4
|
-
author: string;
|
|
5
|
-
duration: number;
|
|
6
|
-
artworkUrl: string | null;
|
|
7
|
-
uri: string;
|
|
8
|
-
sourceName: string;
|
|
9
|
-
isSeekable: boolean;
|
|
10
|
-
isStream: boolean;
|
|
11
|
-
isrc: string | null;
|
|
12
|
-
}
|
|
13
|
-
export interface LavalinkTrackDataInfoExtended extends LavalinkTrackDataInfo {
|
|
14
|
-
requester?: unknown;
|
|
15
|
-
}
|
|
16
|
-
export interface Track {
|
|
17
|
-
encodedTrack?: string;
|
|
18
|
-
info: LavalinkTrackDataInfoExtended;
|
|
19
|
-
pluginInfo: Partial<PluginDataInfo> | Record<string, string | number>;
|
|
20
|
-
}
|
|
21
|
-
export interface PluginDataInfo {
|
|
22
|
-
type?: string;
|
|
23
|
-
identifier?: string;
|
|
24
|
-
artworkUrl?: string;
|
|
25
|
-
author?: string;
|
|
26
|
-
url?: string;
|
|
27
|
-
}
|
package/dist/structures/Track.js
DELETED
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
import { LavalinkFilterData } from "./Filters";
|
|
2
|
-
import { LavalinkManager } from "./LavalinkManager";
|
|
3
|
-
import { NodeStats } from "./Node";
|
|
4
|
-
import { PlayOptions } from "./Player";
|
|
5
|
-
import { PluginDataInfo, Track } from "./Track";
|
|
6
|
-
export declare const TrackSymbol: unique symbol;
|
|
7
|
-
export declare const QueueSymbol: unique symbol;
|
|
8
|
-
export declare const NodeSymbol: unique symbol;
|
|
9
|
-
export type LavalinkSearchPlatform = "ytsearch" | "ytmsearch" | "scsearch" | "spsearch" | "sprec" | "amsearch" | "dzsearch" | "dzisrc" | "sprec" | "ymsearch" | "speak" | "tts";
|
|
10
|
-
export type ClientSearchPlatform = "youtube" | "youtube music" | "soundcloud" | "ytm" | "yt" | "sc" | "am" | "sp" | "sprec" | "spsuggestion" | "ds" | "dz" | "deezer" | "yandex" | "yandexmusic";
|
|
11
|
-
export type SearchPlatform = LavalinkSearchPlatform | ClientSearchPlatform;
|
|
12
|
-
export type SourcesRegex = "YoutubeRegex" | "YoutubeMusicRegex" | "SoundCloudRegex" | "SoundCloudMobileRegex" | "DeezerTrackRegex" | "DeezerArtistRegex" | "DeezerEpisodeRegex" | "DeezerMixesRegex" | "DeezerPageLinkRegex" | "DeezerPlaylistRegex" | "DeezerAlbumRegex" | "AllDeezerRegex" | "AllDeezerRegexWithoutPageLink" | "SpotifySongRegex" | "SpotifyPlaylistRegex" | "SpotifyArtistRegex" | "SpotifyEpisodeRegex" | "SpotifyShowRegex" | "SpotifyAlbumRegex" | "AllSpotifyRegex" | "mp3Url" | "m3uUrl" | "m3u8Url" | "mp4Url" | "m4aUrl" | "wavUrl" | "aacpUrl" | "tiktok" | "mixcloud" | "musicYandex" | "radiohost" | "bandcamp" | "appleMusic" | "TwitchTv" | "vimeo";
|
|
13
|
-
export interface PlaylistInfo {
|
|
14
|
-
/** The playlist name. */
|
|
15
|
-
name: string;
|
|
16
|
-
/** The Playlist Author */
|
|
17
|
-
author?: string;
|
|
18
|
-
/** The Playlist Thumbnail */
|
|
19
|
-
thumbnail?: string;
|
|
20
|
-
/** A Uri to the playlist */
|
|
21
|
-
uri?: string;
|
|
22
|
-
/** The playlist selected track. */
|
|
23
|
-
selectedTrack: Track | null;
|
|
24
|
-
/** The duration of the entire playlist. (calcualted) */
|
|
25
|
-
duration: number;
|
|
26
|
-
}
|
|
27
|
-
export interface SearchResult {
|
|
28
|
-
loadType: LoadTypes;
|
|
29
|
-
exception: Exception | null;
|
|
30
|
-
pluginInfo: PluginDataInfo;
|
|
31
|
-
playlist: PlaylistInfo | null;
|
|
32
|
-
tracks: Track[];
|
|
33
|
-
}
|
|
34
|
-
export interface ManagerUtils {
|
|
35
|
-
/** @private */
|
|
36
|
-
manager: LavalinkManager;
|
|
37
|
-
}
|
|
38
|
-
export declare class ManagerUtils {
|
|
39
|
-
constructor(LavalinkManager: LavalinkManager);
|
|
40
|
-
buildTrack(data: any, requester: any): Track;
|
|
41
|
-
}
|
|
42
|
-
export type PlayerEvents = TrackStartEvent | TrackEndEvent | TrackStuckEvent | TrackExceptionEvent | WebSocketClosedEvent;
|
|
43
|
-
export type Severity = "COMMON" | "SUSPICIOUS" | "FAULT";
|
|
44
|
-
export interface Exception {
|
|
45
|
-
severity: Severity;
|
|
46
|
-
message: string;
|
|
47
|
-
cause: string;
|
|
48
|
-
}
|
|
49
|
-
export interface PlayerEvent {
|
|
50
|
-
op: "event";
|
|
51
|
-
type: PlayerEventType;
|
|
52
|
-
guildId: string;
|
|
53
|
-
}
|
|
54
|
-
export interface TrackStartEvent extends PlayerEvent {
|
|
55
|
-
type: "TrackStartEvent";
|
|
56
|
-
track: string;
|
|
57
|
-
}
|
|
58
|
-
export interface TrackEndEvent extends PlayerEvent {
|
|
59
|
-
type: "TrackEndEvent";
|
|
60
|
-
track: string;
|
|
61
|
-
reason: TrackEndReason;
|
|
62
|
-
}
|
|
63
|
-
export interface TrackExceptionEvent extends PlayerEvent {
|
|
64
|
-
type: "TrackExceptionEvent";
|
|
65
|
-
exception?: Exception;
|
|
66
|
-
error: string;
|
|
67
|
-
}
|
|
68
|
-
export interface TrackStuckEvent extends PlayerEvent {
|
|
69
|
-
type: "TrackStuckEvent";
|
|
70
|
-
thresholdMs: number;
|
|
71
|
-
}
|
|
72
|
-
export interface WebSocketClosedEvent extends PlayerEvent {
|
|
73
|
-
type: "WebSocketClosedEvent";
|
|
74
|
-
code: number;
|
|
75
|
-
byRemote: boolean;
|
|
76
|
-
reason: string;
|
|
77
|
-
}
|
|
78
|
-
export type LoadTypes = "track" | "playlist" | "search" | "error" | "empty";
|
|
79
|
-
export type State = "CONNECTED" | "CONNECTING" | "DISCONNECTED" | "DISCONNECTING" | "DESTROYING";
|
|
80
|
-
export type PlayerEventType = "TrackStartEvent" | "TrackEndEvent" | "TrackExceptionEvent" | "TrackStuckEvent" | "WebSocketClosedEvent";
|
|
81
|
-
export type TrackEndReason = "FINISHED" | "LOAD_FAILED" | "STOPPED" | "REPLACED" | "CLEANUP";
|
|
82
|
-
export interface InvalidLavalinkRestRequest {
|
|
83
|
-
timestamp: number;
|
|
84
|
-
status: number;
|
|
85
|
-
error: string;
|
|
86
|
-
message?: string;
|
|
87
|
-
path: string;
|
|
88
|
-
}
|
|
89
|
-
export interface LavalinkPlayerVoice {
|
|
90
|
-
token: string;
|
|
91
|
-
endpoint: string;
|
|
92
|
-
sessionId: string;
|
|
93
|
-
connected?: boolean;
|
|
94
|
-
ping?: number;
|
|
95
|
-
}
|
|
96
|
-
export interface LavalinkPlayerVoiceOptions extends Omit<LavalinkPlayerVoice, 'connected' | 'ping'> {
|
|
97
|
-
}
|
|
98
|
-
export interface Address {
|
|
99
|
-
address: string;
|
|
100
|
-
failingTimestamp: number;
|
|
101
|
-
failingTime: string;
|
|
102
|
-
}
|
|
103
|
-
export interface RoutePlanner {
|
|
104
|
-
class?: string;
|
|
105
|
-
details?: {
|
|
106
|
-
ipBlock: {
|
|
107
|
-
type: string;
|
|
108
|
-
size: string;
|
|
109
|
-
};
|
|
110
|
-
failingAddresses: Address[];
|
|
111
|
-
};
|
|
112
|
-
rotateIndex?: string;
|
|
113
|
-
ipIndex?: string;
|
|
114
|
-
currentAddress?: string;
|
|
115
|
-
blockIndex?: string;
|
|
116
|
-
currentAddressIndex?: string;
|
|
117
|
-
}
|
|
118
|
-
export interface Session {
|
|
119
|
-
resumingKey?: string;
|
|
120
|
-
timeout: number;
|
|
121
|
-
}
|
|
122
|
-
export interface GuildShardPayload {
|
|
123
|
-
/** The OP code */
|
|
124
|
-
op: number;
|
|
125
|
-
d: {
|
|
126
|
-
guild_id: string;
|
|
127
|
-
channel_id: string | null;
|
|
128
|
-
self_mute: boolean;
|
|
129
|
-
self_deaf: boolean;
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
export interface PlayerUpdateInfo {
|
|
133
|
-
guildId: string;
|
|
134
|
-
playerOptions: PlayOptions;
|
|
135
|
-
noReplace?: boolean;
|
|
136
|
-
}
|
|
137
|
-
export interface LavalinkPlayer {
|
|
138
|
-
guildId: string;
|
|
139
|
-
track?: {
|
|
140
|
-
encoded?: string;
|
|
141
|
-
info: {
|
|
142
|
-
identifier: string;
|
|
143
|
-
title: string;
|
|
144
|
-
author: string;
|
|
145
|
-
length: number;
|
|
146
|
-
artworkUrl: string | null;
|
|
147
|
-
uri: string;
|
|
148
|
-
sourceName: string;
|
|
149
|
-
isSeekable: boolean;
|
|
150
|
-
isStream: boolean;
|
|
151
|
-
isrc: string | null;
|
|
152
|
-
position?: number;
|
|
153
|
-
};
|
|
154
|
-
};
|
|
155
|
-
volume: number;
|
|
156
|
-
paused: boolean;
|
|
157
|
-
voice: LavalinkPlayerVoice;
|
|
158
|
-
filters: Partial<LavalinkFilterData>;
|
|
159
|
-
}
|
|
160
|
-
export interface VoiceState {
|
|
161
|
-
op: "voiceUpdate";
|
|
162
|
-
guildId: string;
|
|
163
|
-
event: VoiceServer;
|
|
164
|
-
sessionId?: string;
|
|
165
|
-
guild_id: string;
|
|
166
|
-
user_id: string;
|
|
167
|
-
session_id: string;
|
|
168
|
-
channel_id: string;
|
|
169
|
-
}
|
|
170
|
-
export interface VoiceServer {
|
|
171
|
-
token: string;
|
|
172
|
-
guild_id: string;
|
|
173
|
-
endpoint: string;
|
|
174
|
-
}
|
|
175
|
-
export interface VoicePacket {
|
|
176
|
-
t?: "VOICE_SERVER_UPDATE" | "VOICE_STATE_UPDATE";
|
|
177
|
-
d: VoiceState | VoiceServer;
|
|
178
|
-
}
|
|
179
|
-
export interface NodeMessage extends NodeStats {
|
|
180
|
-
type: PlayerEventType;
|
|
181
|
-
op: "stats" | "playerUpdate" | "event";
|
|
182
|
-
guildId: string;
|
|
183
|
-
}
|
package/dist/structures/Utils.js
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ManagerUitls = exports.NodeSymbol = exports.QueueSymbol = exports.TrackSymbol = void 0;
|
|
4
|
-
exports.TrackSymbol = Symbol("LC-Track");
|
|
5
|
-
exports.QueueSymbol = Symbol("LC-Queue");
|
|
6
|
-
exports.NodeSymbol = Symbol("LC-Node");
|
|
7
|
-
class ManagerUitls {
|
|
8
|
-
constructor(LavalinkManager) {
|
|
9
|
-
this.manager = LavalinkManager;
|
|
10
|
-
}
|
|
11
|
-
buildTrack(data, requester) {
|
|
12
|
-
const encodedTrack = data.encoded || data.encodedTrack || typeof data.track === "string" ? data.track : undefined;
|
|
13
|
-
if (!encodedTrack)
|
|
14
|
-
throw new RangeError("Argument 'data.encoded' / 'data.encodedTrack' / 'data.track' must be present.");
|
|
15
|
-
if (!data.info)
|
|
16
|
-
data.info = {};
|
|
17
|
-
try {
|
|
18
|
-
const r = {
|
|
19
|
-
info: {
|
|
20
|
-
identifier: data.info?.identifier,
|
|
21
|
-
title: data.info?.title,
|
|
22
|
-
author: data.info?.author,
|
|
23
|
-
duration: data.info?.duration,
|
|
24
|
-
artworkUrl: data.info?.artworkUrl || ["youtube.", "youtu.be"].some(d => data.info?.uri?.includes?.(d)) ? `https://img.youtube.com/vi/${data.info?.identifier}/mqdefault.jpg` : undefined,
|
|
25
|
-
uri: data.info?.uri,
|
|
26
|
-
sourceName: data.info?.sourceName,
|
|
27
|
-
isSeekable: data.info?.isSeekable,
|
|
28
|
-
isStream: data.info?.isStream,
|
|
29
|
-
isrc: data.info?.isrc,
|
|
30
|
-
requester: data.info?.requester || requester,
|
|
31
|
-
},
|
|
32
|
-
pluginInfo: data.pluginInfo || data.plugin || {},
|
|
33
|
-
encodedTrack
|
|
34
|
-
};
|
|
35
|
-
Object.defineProperty(r, exports.TrackSymbol, { configurable: true, value: true });
|
|
36
|
-
return r;
|
|
37
|
-
}
|
|
38
|
-
catch (error) {
|
|
39
|
-
throw new RangeError(`Argument "data" is not a valid track: ${error.message}`);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
exports.ManagerUitls = ManagerUitls;
|