sonatica 1.0.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/@dist/classes/Database.d.ts +17 -0
- package/@dist/classes/Database.d.ts.map +1 -0
- package/@dist/classes/Database.js +108 -0
- package/@dist/classes/Database.js.map +1 -0
- package/@dist/classes/Filters.d.ts +85 -0
- package/@dist/classes/Filters.d.ts.map +1 -0
- package/@dist/classes/Filters.js +188 -0
- package/@dist/classes/Filters.js.map +1 -0
- package/@dist/classes/Node.d.ts +41 -0
- package/@dist/classes/Node.d.ts.map +1 -0
- package/@dist/classes/Node.js +357 -0
- package/@dist/classes/Node.js.map +1 -0
- package/@dist/classes/Player.d.ts +48 -0
- package/@dist/classes/Player.d.ts.map +1 -0
- package/@dist/classes/Player.js +299 -0
- package/@dist/classes/Player.js.map +1 -0
- package/@dist/classes/Queue.d.ts +14 -0
- package/@dist/classes/Queue.d.ts.map +1 -0
- package/@dist/classes/Queue.js +79 -0
- package/@dist/classes/Queue.js.map +1 -0
- package/@dist/classes/Rest.d.ts +9 -0
- package/@dist/classes/Rest.d.ts.map +1 -0
- package/@dist/classes/Rest.js +44 -0
- package/@dist/classes/Rest.js.map +1 -0
- package/@dist/classes/Sonatica.d.ts +26 -0
- package/@dist/classes/Sonatica.d.ts.map +1 -0
- package/@dist/classes/Sonatica.js +184 -0
- package/@dist/classes/Sonatica.js.map +1 -0
- package/@dist/classes/Utils.d.ts +4 -0
- package/@dist/classes/Utils.d.ts.map +1 -0
- package/@dist/classes/Utils.js +29 -0
- package/@dist/classes/Utils.js.map +1 -0
- package/@dist/index.d.ts +18 -0
- package/@dist/index.d.ts.map +1 -0
- package/@dist/index.js +34 -0
- package/@dist/index.js.map +1 -0
- package/@dist/sorter/leastLoadNode.d.ts +5 -0
- package/@dist/sorter/leastLoadNode.d.ts.map +1 -0
- package/@dist/sorter/leastLoadNode.js +13 -0
- package/@dist/sorter/leastLoadNode.js.map +1 -0
- package/@dist/sorter/leastUsedNodes.d.ts +5 -0
- package/@dist/sorter/leastUsedNodes.d.ts.map +1 -0
- package/@dist/sorter/leastUsedNodes.js +9 -0
- package/@dist/sorter/leastUsedNodes.js.map +1 -0
- package/@dist/types/Filters.d.ts +5 -0
- package/@dist/types/Filters.d.ts.map +1 -0
- package/@dist/types/Filters.js +3 -0
- package/@dist/types/Filters.js.map +1 -0
- package/@dist/types/Node.d.ts +37 -0
- package/@dist/types/Node.d.ts.map +1 -0
- package/@dist/types/Node.js +3 -0
- package/@dist/types/Node.js.map +1 -0
- package/@dist/types/Op.d.ts +65 -0
- package/@dist/types/Op.d.ts.map +1 -0
- package/@dist/types/Op.js +3 -0
- package/@dist/types/Op.js.map +1 -0
- package/@dist/types/Player.d.ts +39 -0
- package/@dist/types/Player.d.ts.map +1 -0
- package/@dist/types/Player.js +10 -0
- package/@dist/types/Player.js.map +1 -0
- package/@dist/types/Rest.d.ts +82 -0
- package/@dist/types/Rest.d.ts.map +1 -0
- package/@dist/types/Rest.js +3 -0
- package/@dist/types/Rest.js.map +1 -0
- package/@dist/types/Sonatica.d.ts +49 -0
- package/@dist/types/Sonatica.d.ts.map +1 -0
- package/@dist/types/Sonatica.js +3 -0
- package/@dist/types/Sonatica.js.map +1 -0
- package/@dist/utils/equlizers.d.ts +7 -0
- package/@dist/utils/equlizers.d.ts.map +1 -0
- package/@dist/utils/equlizers.js +85 -0
- package/@dist/utils/equlizers.js.map +1 -0
- package/@dist/utils/sources.d.ts +10 -0
- package/@dist/utils/sources.d.ts.map +1 -0
- package/@dist/utils/sources.js +14 -0
- package/@dist/utils/sources.js.map +1 -0
- package/@dist/utils/utils.d.ts +17 -0
- package/@dist/utils/utils.d.ts.map +1 -0
- package/@dist/utils/utils.js +119 -0
- package/@dist/utils/utils.js.map +1 -0
- package/README.md +30 -0
- package/package.json +43 -0
|
@@ -0,0 +1,299 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.Player = void 0;
|
|
16
|
+
const leastLoadNode_1 = __importDefault(require("../sorter/leastLoadNode"));
|
|
17
|
+
const Filters_1 = require("./Filters");
|
|
18
|
+
const Queue_1 = require("./Queue");
|
|
19
|
+
const utils_1 = require("../utils/utils");
|
|
20
|
+
class Player {
|
|
21
|
+
set(key, value) {
|
|
22
|
+
this.data[key] = value;
|
|
23
|
+
}
|
|
24
|
+
get(key) {
|
|
25
|
+
return this.data[key];
|
|
26
|
+
}
|
|
27
|
+
static init(sonatica) {
|
|
28
|
+
this._sonatica = sonatica;
|
|
29
|
+
}
|
|
30
|
+
constructor(options) {
|
|
31
|
+
var _a, _b;
|
|
32
|
+
this.options = options;
|
|
33
|
+
this.queue = new Queue_1.Queue();
|
|
34
|
+
this.repeatMode = 0;
|
|
35
|
+
this.position = 0;
|
|
36
|
+
this.playing = false;
|
|
37
|
+
this.paused = false;
|
|
38
|
+
this.isAutoplay = false;
|
|
39
|
+
this.voiceChannel = null;
|
|
40
|
+
this.textChannel = null;
|
|
41
|
+
this.state = "DISCONNECTED";
|
|
42
|
+
this.bands = new Array(15).fill(0.0);
|
|
43
|
+
this.data = {};
|
|
44
|
+
if (!this.sonatica)
|
|
45
|
+
this.sonatica = Player._sonatica;
|
|
46
|
+
if (this.sonatica.players.has(options.guild))
|
|
47
|
+
return this.sonatica.players.get(options.guild);
|
|
48
|
+
this.guild = options.guild;
|
|
49
|
+
this.data = (_a = options.data) !== null && _a !== void 0 ? _a : {};
|
|
50
|
+
this.voiceState = Object.assign({ op: "voiceUpdate", guild_id: options.guild });
|
|
51
|
+
if (options.voiceChannel)
|
|
52
|
+
this.voiceChannel = options.voiceChannel;
|
|
53
|
+
if (options.textChannel)
|
|
54
|
+
this.textChannel = options.textChannel;
|
|
55
|
+
const node = this.sonatica.nodes.get(options.node);
|
|
56
|
+
this.node =
|
|
57
|
+
node ||
|
|
58
|
+
(0, leastLoadNode_1.default)(this.sonatica.nodes)
|
|
59
|
+
.filter((node) => node.options.playback)
|
|
60
|
+
.first();
|
|
61
|
+
this.sonatica.players.set(this.guild, this);
|
|
62
|
+
this.sonatica.emit("playerCreate", this);
|
|
63
|
+
this.volume = (_b = options.volume) !== null && _b !== void 0 ? _b : 80;
|
|
64
|
+
this.filters = new Filters_1.Filters(this);
|
|
65
|
+
}
|
|
66
|
+
search(query, requester) {
|
|
67
|
+
return this.sonatica.search(query, requester);
|
|
68
|
+
}
|
|
69
|
+
connect() {
|
|
70
|
+
if (!this.voiceChannel)
|
|
71
|
+
throw new RangeError("No voice channel has been set.");
|
|
72
|
+
this.state = "CONNECTING";
|
|
73
|
+
this.sonatica.options.send(this.guild, {
|
|
74
|
+
op: 4,
|
|
75
|
+
d: {
|
|
76
|
+
guild_id: this.guild,
|
|
77
|
+
channel_id: this.voiceChannel,
|
|
78
|
+
self_mute: this.options.selfMute || false,
|
|
79
|
+
self_deaf: this.options.selfDeafen || false,
|
|
80
|
+
},
|
|
81
|
+
});
|
|
82
|
+
this.state = "CONNECTED";
|
|
83
|
+
return this;
|
|
84
|
+
}
|
|
85
|
+
disconnect() {
|
|
86
|
+
if (this.voiceChannel === null)
|
|
87
|
+
return this;
|
|
88
|
+
this.state = "DISCONNECTING";
|
|
89
|
+
this.sonatica.options.send(this.guild, {
|
|
90
|
+
op: 4,
|
|
91
|
+
d: {
|
|
92
|
+
guild_id: this.guild,
|
|
93
|
+
channel_id: null,
|
|
94
|
+
self_mute: false,
|
|
95
|
+
self_deaf: false,
|
|
96
|
+
},
|
|
97
|
+
});
|
|
98
|
+
this.voiceChannel = null;
|
|
99
|
+
this.state = "DISCONNECTED";
|
|
100
|
+
return this;
|
|
101
|
+
}
|
|
102
|
+
destroy(disconnect = true) {
|
|
103
|
+
this.state = "DESTROYING";
|
|
104
|
+
if (disconnect)
|
|
105
|
+
this.disconnect();
|
|
106
|
+
this.node.rest.request("DELETE", `/sessions/${this.node.sessionId}/players/${this.guild}`);
|
|
107
|
+
this.sonatica.emit("playerDestroy", this);
|
|
108
|
+
this.sonatica.players.delete(this.guild);
|
|
109
|
+
}
|
|
110
|
+
setVoiceChannel(channel) {
|
|
111
|
+
if (typeof channel !== "string")
|
|
112
|
+
throw new TypeError("Channel must be a non-empty string.");
|
|
113
|
+
this.voiceChannel = channel;
|
|
114
|
+
this.connect();
|
|
115
|
+
return this;
|
|
116
|
+
}
|
|
117
|
+
setTextChannel(channel) {
|
|
118
|
+
if (typeof channel !== "string")
|
|
119
|
+
throw new TypeError("Channel must be a non-empty string.");
|
|
120
|
+
this.textChannel = channel;
|
|
121
|
+
return this;
|
|
122
|
+
}
|
|
123
|
+
setVolume(volume) {
|
|
124
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
125
|
+
if (isNaN(volume))
|
|
126
|
+
throw new TypeError("Volume must be a number.");
|
|
127
|
+
yield this.node.rest.request("PATCH", `/sessions/${this.node.sessionId}/players/${this.guild}?noReplace=false`, { volume });
|
|
128
|
+
this.volume = volume;
|
|
129
|
+
return this;
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
setAutoplay(state) {
|
|
133
|
+
if (typeof state !== "boolean") {
|
|
134
|
+
throw new TypeError('state must be a "true" or "false".');
|
|
135
|
+
}
|
|
136
|
+
this.isAutoplay = state;
|
|
137
|
+
return this;
|
|
138
|
+
}
|
|
139
|
+
setRepeat(mode) {
|
|
140
|
+
if (typeof mode !== "number") {
|
|
141
|
+
throw new TypeError("mode must be a number.");
|
|
142
|
+
}
|
|
143
|
+
this.repeatMode = mode;
|
|
144
|
+
return this;
|
|
145
|
+
}
|
|
146
|
+
moveNode(node) {
|
|
147
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
148
|
+
var _a, _b, _c, _d;
|
|
149
|
+
if (!node)
|
|
150
|
+
node = (_a = (0, leastLoadNode_1.default)(this.sonatica.nodes)
|
|
151
|
+
.filter((node) => node.options.playback)
|
|
152
|
+
.first()) === null || _a === void 0 ? void 0 : _a.options.identifier;
|
|
153
|
+
if (!node || !this.sonatica.nodes.get(node))
|
|
154
|
+
throw new RangeError("No nodes are available.");
|
|
155
|
+
if (this.node.options.identifier === node)
|
|
156
|
+
return this;
|
|
157
|
+
const destroyOldNode = (node) => __awaiter(this, void 0, void 0, function* () {
|
|
158
|
+
this.state = "MOVING";
|
|
159
|
+
if (this.sonatica.nodes.get(node.options.identifier) && this.sonatica.nodes.get(node.options.identifier).connected)
|
|
160
|
+
yield node.rest.request("DELETE", `/sessions/${node.sessionId}/players/${this.guild}`);
|
|
161
|
+
setTimeout(() => (this.state = "CONNECTED"), 5000);
|
|
162
|
+
});
|
|
163
|
+
const currentNode = this.node;
|
|
164
|
+
const destinationNode = this.sonatica.nodes.get(node);
|
|
165
|
+
let position = this.position;
|
|
166
|
+
if (currentNode.connected) {
|
|
167
|
+
const fetchedPlayer = yield currentNode.rest.request("GET", `/sessions/${currentNode.sessionId}/players/${this.guild}`);
|
|
168
|
+
position = fetchedPlayer.track.info.position;
|
|
169
|
+
}
|
|
170
|
+
yield destinationNode.rest.request("PATCH", `/sessions/${destinationNode.sessionId}/players/${this.guild}?noReplace=false`, {
|
|
171
|
+
track: { encoded: (_b = this.queue.current) === null || _b === void 0 ? void 0 : _b.track, userData: (_c = this.queue.current) === null || _c === void 0 ? void 0 : _c.requester },
|
|
172
|
+
position: position,
|
|
173
|
+
volume: this.volume,
|
|
174
|
+
paused: this.paused,
|
|
175
|
+
filters: {
|
|
176
|
+
distortion: this.filters.distortion,
|
|
177
|
+
equalizer: this.filters.equalizer,
|
|
178
|
+
karaoke: this.filters.karaoke,
|
|
179
|
+
rotation: this.filters.rotation,
|
|
180
|
+
timescale: this.filters.timescale,
|
|
181
|
+
vibrato: this.filters.vibrato,
|
|
182
|
+
volume: this.filters.volume,
|
|
183
|
+
},
|
|
184
|
+
voice: {
|
|
185
|
+
token: this.voiceState.event.token,
|
|
186
|
+
endpoint: this.voiceState.event.endpoint,
|
|
187
|
+
sessionId: (_d = this.voiceState) === null || _d === void 0 ? void 0 : _d.sessionId,
|
|
188
|
+
},
|
|
189
|
+
});
|
|
190
|
+
this.node = destinationNode;
|
|
191
|
+
destroyOldNode(currentNode);
|
|
192
|
+
return this;
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
play(track) {
|
|
196
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
197
|
+
if (typeof track !== "undefined" && utils_1.TrackUtils.validate(track)) {
|
|
198
|
+
if (this.queue.current)
|
|
199
|
+
this.queue.previous = this.queue.current;
|
|
200
|
+
this.queue.current = track;
|
|
201
|
+
}
|
|
202
|
+
if (!this.queue.current)
|
|
203
|
+
throw new RangeError("No current track.");
|
|
204
|
+
if (utils_1.TrackUtils.isUnresolvedTrack(this.queue.current)) {
|
|
205
|
+
try {
|
|
206
|
+
this.queue.current = yield utils_1.TrackUtils.getClosestTrack(this.queue.current);
|
|
207
|
+
}
|
|
208
|
+
catch (error) {
|
|
209
|
+
this.sonatica.emit("trackError", this, this.queue.current, error);
|
|
210
|
+
if (this.queue[0])
|
|
211
|
+
return this.play(this.queue[0]);
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
yield this.node.rest.request("PATCH", `/sessions/${this.node.sessionId}/players/${this.guild}?noReplace=false`, {
|
|
216
|
+
track: {
|
|
217
|
+
encoded: this.queue.current.track,
|
|
218
|
+
userData: this.queue.current.requester,
|
|
219
|
+
},
|
|
220
|
+
position: this.position,
|
|
221
|
+
endTime: null,
|
|
222
|
+
volume: this.volume,
|
|
223
|
+
filters: {
|
|
224
|
+
distortion: this.filters.distortion,
|
|
225
|
+
equalizer: this.filters.equalizer,
|
|
226
|
+
karaoke: this.filters.karaoke,
|
|
227
|
+
rotation: this.filters.rotation,
|
|
228
|
+
timescale: this.filters.timescale,
|
|
229
|
+
vibrato: this.filters.vibrato,
|
|
230
|
+
volume: this.filters.volume,
|
|
231
|
+
},
|
|
232
|
+
paused: this.paused,
|
|
233
|
+
});
|
|
234
|
+
this.save();
|
|
235
|
+
this.position = 0;
|
|
236
|
+
this.playing = true;
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
stop(amount) {
|
|
240
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
241
|
+
if (typeof amount === "number" && amount > 1) {
|
|
242
|
+
if (amount > this.queue.length)
|
|
243
|
+
throw new RangeError("Cannot skip more than the queue length.");
|
|
244
|
+
this.queue.splice(0, amount - 1);
|
|
245
|
+
}
|
|
246
|
+
yield this.node.rest.request("PATCH", `/sessions/${this.node.sessionId}/players/${this.guild}?noReplace=false`, {
|
|
247
|
+
encodedTrack: null,
|
|
248
|
+
});
|
|
249
|
+
return this;
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
pause(paused) {
|
|
253
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
254
|
+
yield this.node.rest.request("PATCH", `/sessions/${this.node.sessionId}/players/${this.guild}?noReplace=false`, { paused: paused });
|
|
255
|
+
return this;
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
previous() {
|
|
259
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
260
|
+
this.queue.unshift(this.queue.previous);
|
|
261
|
+
yield this.stop();
|
|
262
|
+
return this;
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
seek(position) {
|
|
266
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
267
|
+
if (!this.queue.current)
|
|
268
|
+
return undefined;
|
|
269
|
+
position = Number(position);
|
|
270
|
+
if (isNaN(position)) {
|
|
271
|
+
throw new TypeError("Position must be a number.");
|
|
272
|
+
}
|
|
273
|
+
if (position < 0 || position > this.queue.current.duration)
|
|
274
|
+
position = Math.max(Math.min(position, this.queue.current.duration), 0);
|
|
275
|
+
this.position = position;
|
|
276
|
+
yield this.node.rest.request("PATCH", `/sessions/${this.node.sessionId}/players/${this.guild}?noReplace=false`, { position: position });
|
|
277
|
+
return this;
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
save() {
|
|
281
|
+
if (!this.sonatica.options.autoResume)
|
|
282
|
+
return;
|
|
283
|
+
this.sonatica.db.set(`players.${this.guild}`, {
|
|
284
|
+
guild: this.guild,
|
|
285
|
+
voiceChannel: this.voiceChannel,
|
|
286
|
+
textChannel: this.textChannel,
|
|
287
|
+
volume: this.volume,
|
|
288
|
+
data: this.data,
|
|
289
|
+
selfDeafen: this.options.selfDeafen,
|
|
290
|
+
selfMute: this.options.selfMute,
|
|
291
|
+
repeatMode: this.repeatMode,
|
|
292
|
+
isAutoplay: this.isAutoplay,
|
|
293
|
+
current: this.queue.current ? this.queue.current.track : null,
|
|
294
|
+
queue: this.queue.map((track) => track.track),
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
exports.Player = Player;
|
|
299
|
+
//# sourceMappingURL=Player.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Player.js","sourceRoot":"","sources":["../../src/classes/Player.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Track, UnresolvedTrack } from "../types/Player";
|
|
2
|
+
export declare class Queue extends Array<Track | UnresolvedTrack> {
|
|
3
|
+
current: Track | UnresolvedTrack | null;
|
|
4
|
+
previous: Track | UnresolvedTrack | null;
|
|
5
|
+
get totalSize(): number;
|
|
6
|
+
get size(): number;
|
|
7
|
+
get duration(): number;
|
|
8
|
+
add(track: (Track | UnresolvedTrack) | (Track | UnresolvedTrack)[], offset?: number): void;
|
|
9
|
+
remove(position?: number): (Track | UnresolvedTrack)[];
|
|
10
|
+
remove(start: number, end: number): (Track | UnresolvedTrack)[];
|
|
11
|
+
clear(): void;
|
|
12
|
+
shuffle(): void;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=Queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Queue.d.ts","sourceRoot":"","sources":["../../src/classes/Queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEzD,qBAAa,KAAM,SAAQ,KAAK,CAAC,KAAK,GAAG,eAAe,CAAC;IAChD,OAAO,EAAE,KAAK,GAAG,eAAe,GAAG,IAAI,CAAQ;IAC/C,QAAQ,EAAE,KAAK,GAAG,eAAe,GAAG,IAAI,CAAQ;IAEvD,IAAW,SAAS,IAAI,MAAM,CAE9B;IAEA,IAAW,IAAI,IAAI,MAAM,CAEzB;IAEA,IAAW,QAAQ,IAAI,MAAM,CAG7B;IAEO,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,GAAG,eAAe,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAiC1F,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,KAAK,GAAG,eAAe,CAAC,EAAE;IACvD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,KAAK,GAAG,eAAe,CAAC,EAAE;IAiB9D,KAAK,IAAI,IAAI;IAIb,OAAO,IAAI,IAAI;CAMvB"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Queue = void 0;
|
|
4
|
+
class Queue extends Array {
|
|
5
|
+
constructor() {
|
|
6
|
+
super(...arguments);
|
|
7
|
+
this.current = null;
|
|
8
|
+
this.previous = null;
|
|
9
|
+
}
|
|
10
|
+
get totalSize() {
|
|
11
|
+
return this.length + (this.current ? 1 : 0);
|
|
12
|
+
}
|
|
13
|
+
get size() {
|
|
14
|
+
return this.totalSize;
|
|
15
|
+
}
|
|
16
|
+
get duration() {
|
|
17
|
+
var _a, _b;
|
|
18
|
+
const current = (_b = (_a = this.current) === null || _a === void 0 ? void 0 : _a.duration) !== null && _b !== void 0 ? _b : 0;
|
|
19
|
+
return this.reduce((acc, cur) => acc + (cur.duration || 0), current);
|
|
20
|
+
}
|
|
21
|
+
add(track, offset) {
|
|
22
|
+
if (!this.current) {
|
|
23
|
+
if (Array.isArray(track)) {
|
|
24
|
+
this.current = track.shift() || null;
|
|
25
|
+
this.push(...track);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
this.current = track;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
if (typeof offset !== "undefined" && typeof offset === "number") {
|
|
33
|
+
if (isNaN(offset)) {
|
|
34
|
+
throw new RangeError("Offset must be a number.");
|
|
35
|
+
}
|
|
36
|
+
if (offset < 0 || offset > this.length) {
|
|
37
|
+
throw new RangeError(`Offset must be between 0 and ${this.length}.`);
|
|
38
|
+
}
|
|
39
|
+
if (Array.isArray(track)) {
|
|
40
|
+
this.splice(offset, 0, ...track);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
this.splice(offset, 0, track);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
if (Array.isArray(track)) {
|
|
48
|
+
this.push(...track);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
this.push(track);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
remove(startOrPosition = 0, end) {
|
|
57
|
+
if (typeof end !== "undefined") {
|
|
58
|
+
if (isNaN(Number(startOrPosition)) || isNaN(Number(end))) {
|
|
59
|
+
throw new RangeError(`Missing "start" or "end" parameter.`);
|
|
60
|
+
}
|
|
61
|
+
if (startOrPosition >= end || startOrPosition >= this.length) {
|
|
62
|
+
throw new RangeError("Invalid start or end values.");
|
|
63
|
+
}
|
|
64
|
+
return this.splice(startOrPosition, end - startOrPosition);
|
|
65
|
+
}
|
|
66
|
+
return this.splice(startOrPosition, 1);
|
|
67
|
+
}
|
|
68
|
+
clear() {
|
|
69
|
+
this.splice(0);
|
|
70
|
+
}
|
|
71
|
+
shuffle() {
|
|
72
|
+
for (let i = this.length - 1; i > 0; i--) {
|
|
73
|
+
const j = Math.floor(Math.random() * (i + 1));
|
|
74
|
+
[this[i], this[j]] = [this[j], this[i]];
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
exports.Queue = Queue;
|
|
79
|
+
//# sourceMappingURL=Queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Queue.js","sourceRoot":"","sources":["../../src/classes/Queue.ts"],"names":[],"mappings":";;;AAEA,MAAa,KAAM,SAAQ,KAA8B;IAAzD;;QACS,YAAO,GAAmC,IAAI,CAAC;QAC/C,aAAQ,GAAmC,IAAI,CAAC;IA4EzD,CAAC;IA1EC,IAAW,SAAS;QACpB,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAEA,IAAW,IAAI;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IACvB,CAAC;IAEA,IAAW,QAAQ;;QACnB,MAAM,OAAO,GAAG,MAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,QAAQ,mCAAI,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;IAEO,GAAG,CAAC,KAA8D,EAAE,MAAe;QAC1F,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC;gBACrC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACtB,CAAC;QACF,CAAC;aAAM,CAAC;YACP,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACjE,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;oBACnB,MAAM,IAAI,UAAU,CAAC,0BAA0B,CAAC,CAAC;gBAClD,CAAC;gBAED,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;oBACxC,MAAM,IAAI,UAAU,CAAC,gCAAgC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBACtE,CAAC;gBAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1B,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;gBAClC,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC/B,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC1B,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;gBACrB,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClB,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAIM,MAAM,CAAC,eAAe,GAAG,CAAC,EAAE,GAAY;QAC9C,IAAI,OAAO,GAAG,KAAK,WAAW,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC1D,MAAM,IAAI,UAAU,CAAC,qCAAqC,CAAC,CAAC;YAC7D,CAAC;YAED,IAAI,eAAe,IAAI,GAAG,IAAI,eAAe,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC9D,MAAM,IAAI,UAAU,CAAC,8BAA8B,CAAC,CAAC;YACtD,CAAC;YAED,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,GAAG,GAAG,eAAe,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;IAEO,KAAK;QACZ,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC;IAEO,OAAO;QACd,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9C,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC;IACF,CAAC;CACD;AA9ED,sBA8EC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Method } from "axios";
|
|
2
|
+
import { Node } from "./Node";
|
|
3
|
+
export declare class Rest {
|
|
4
|
+
private readonly password;
|
|
5
|
+
private readonly url;
|
|
6
|
+
constructor(node: Node);
|
|
7
|
+
request(method: Method, endpoint: string, payload?: object | unknown): Promise<unknown>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=Rest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Rest.d.ts","sourceRoot":"","sources":["../../src/classes/Rest.ts"],"names":[],"mappings":"AAAA,OAAc,EAAsB,MAAM,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,qBAAa,IAAI;IAChB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;gBAEjB,IAAI,EAAE,IAAI;IAKT,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAkBpG"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.Rest = void 0;
|
|
16
|
+
const axios_1 = __importDefault(require("axios"));
|
|
17
|
+
class Rest {
|
|
18
|
+
constructor(node) {
|
|
19
|
+
this.url = `http${node.options.secure ? "s" : ""}://${node.options.host}:${node.options.port}/v4`;
|
|
20
|
+
this.password = node.options.password;
|
|
21
|
+
}
|
|
22
|
+
request(method, endpoint, payload) {
|
|
23
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
+
try {
|
|
25
|
+
const response = yield (0, axios_1.default)({
|
|
26
|
+
method,
|
|
27
|
+
data: payload,
|
|
28
|
+
cache: false,
|
|
29
|
+
url: this.url + endpoint,
|
|
30
|
+
headers: {
|
|
31
|
+
"Content-Type": "application/json",
|
|
32
|
+
Authorization: this.password,
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
return response.data;
|
|
36
|
+
}
|
|
37
|
+
catch (e) {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.Rest = Rest;
|
|
44
|
+
//# sourceMappingURL=Rest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Rest.js","sourceRoot":"","sources":["../../src/classes/Rest.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA0D;AAG1D,MAAa,IAAI;IAIhB,YAAY,IAAU;QACrB,IAAI,CAAC,GAAG,GAAG,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;QAClG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IACvC,CAAC;IAEY,OAAO,CAAC,MAAc,EAAE,QAAgB,EAAE,OAA0B;;YAChF,IAAI,CAAC;gBACJ,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAK,EAAC;oBAC5B,MAAM;oBACN,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,KAAK;oBACZ,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,QAAQ;oBACxB,OAAO,EAAE;wBACR,cAAc,EAAE,kBAAkB;wBAClC,aAAa,EAAE,IAAI,CAAC,QAAQ;qBAC5B;iBACqB,CAAC,CAAC;gBAEzB,OAAO,QAAQ,CAAC,IAAI,CAAC;YACtB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,OAAO,IAAI,CAAC;YACb,CAAC;QACF,CAAC;KAAA;CACD;AA3BD,oBA2BC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Collection } from "@discordjs/collection";
|
|
2
|
+
import { EventEmitter } from "events";
|
|
3
|
+
import { SonaticaOptions, SearchQuery, VoicePacket, VoiceServer, VoiceState } from "../types/Sonatica";
|
|
4
|
+
import { Node } from "./Node";
|
|
5
|
+
import { Player } from "./Player";
|
|
6
|
+
import { Database } from "./Database";
|
|
7
|
+
import { PlayerOptions } from "../types/Player";
|
|
8
|
+
import { SearchResult, TrackData } from "../types/Rest";
|
|
9
|
+
export declare class Sonatica extends EventEmitter {
|
|
10
|
+
readonly nodes: Collection<string, Node>;
|
|
11
|
+
readonly players: Collection<string, Player>;
|
|
12
|
+
db: Database;
|
|
13
|
+
options: SonaticaOptions;
|
|
14
|
+
private initiated;
|
|
15
|
+
constructor(options: SonaticaOptions);
|
|
16
|
+
init(clientId: string): this;
|
|
17
|
+
search(query: SearchQuery, requester?: unknown): Promise<SearchResult>;
|
|
18
|
+
decodeTracks(tracks: string[]): Promise<TrackData[]>;
|
|
19
|
+
decodeTrack(track: string): Promise<TrackData>;
|
|
20
|
+
create(options: PlayerOptions): Player;
|
|
21
|
+
get(guild: string): Player | undefined;
|
|
22
|
+
destroy(guild: string): void;
|
|
23
|
+
destroyNode(identifier: string): void;
|
|
24
|
+
updateVoiceState(payload: VoicePacket | VoiceState | VoiceServer): Promise<void>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=Sonatica.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sonatica.d.ts","sourceRoot":"","sources":["../../src/classes/Sonatica.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACvG,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAmC,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAIzF,qBAAa,QAAS,SAAQ,YAAY;IACzC,SAAgB,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAoB;IACnE,SAAgB,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAoB;IAChE,EAAE,EAAE,QAAQ,CAAQ;IACpB,OAAO,EAAE,eAAe,CAAC;IAEhC,OAAO,CAAC,SAAS,CAAkB;gBAEvB,OAAO,EAAE,eAAe;IAqB7B,IAAI,CAAC,QAAQ,EAAE,MAAM;IAkBf,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,OAAO;IAwD9C,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAYpD,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAKpD,MAAM,CAAC,OAAO,EAAE,aAAa;IAK7B,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAItC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI5B,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAO/B,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,GAAG,WAAW;CAkC7E"}
|