ziplayer 0.1.4 → 0.1.5
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/structures/Player.d.ts +38 -57
- package/dist/structures/Player.d.ts.map +1 -1
- package/dist/structures/Player.js +205 -303
- package/dist/structures/Player.js.map +1 -1
- package/dist/structures/PlayerManager.d.ts +5 -1
- package/dist/structures/PlayerManager.d.ts.map +1 -1
- package/dist/structures/PlayerManager.js.map +1 -1
- package/dist/types/index.d.ts +58 -16
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/structures/Player.ts +225 -360
- package/src/structures/PlayerManager.ts +16 -11
- package/src/types/index.ts +56 -16
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EventEmitter } from "events";
|
|
2
2
|
import { Player } from "./Player";
|
|
3
|
-
import { PlayerManagerOptions, PlayerOptions, Track, SourcePlugin, SearchResult } from "../types";
|
|
3
|
+
import { PlayerManagerOptions, PlayerOptions, Track, SourcePlugin, SearchResult, ManagerEvents } from "../types";
|
|
4
4
|
import type { BaseExtension } from "../extensions";
|
|
5
5
|
import { withTimeout } from "../utils/timeout";
|
|
6
6
|
|
|
@@ -25,6 +25,11 @@ const setGlobalManager = (instance: PlayerManager): void => {
|
|
|
25
25
|
}
|
|
26
26
|
};
|
|
27
27
|
|
|
28
|
+
export declare interface PlayerManager {
|
|
29
|
+
on<K extends keyof ManagerEvents>(event: K, listener: (...args: ManagerEvents[K]) => void): this;
|
|
30
|
+
emit<K extends keyof ManagerEvents>(event: K, ...args: ManagerEvents[K]): boolean;
|
|
31
|
+
}
|
|
32
|
+
|
|
28
33
|
/**
|
|
29
34
|
* The main class for managing players across multiple Discord guilds.
|
|
30
35
|
*
|
|
@@ -212,18 +217,18 @@ export class PlayerManager extends EventEmitter {
|
|
|
212
217
|
}
|
|
213
218
|
|
|
214
219
|
// Forward all player events
|
|
215
|
-
player.on("willPlay", (track, tracks) => this.emit("willPlay", player, track, tracks));
|
|
216
|
-
player.on("trackStart", (track) => this.emit("trackStart", player, track));
|
|
217
|
-
player.on("trackEnd", (track) => this.emit("trackEnd", player, track));
|
|
220
|
+
player.on("willPlay", (track, tracks) => this.emit("willPlay", player, track as Track, tracks as Track[]));
|
|
221
|
+
player.on("trackStart", (track) => this.emit("trackStart", player, track as Track));
|
|
222
|
+
player.on("trackEnd", (track) => this.emit("trackEnd", player, track as Track));
|
|
218
223
|
player.on("queueEnd", () => this.emit("queueEnd", player));
|
|
219
|
-
player.on("playerError", (error, track) => this.emit("playerError", player, error, track));
|
|
224
|
+
player.on("playerError", (error, track) => this.emit("playerError", player, error, track as Track));
|
|
220
225
|
player.on("connectionError", (error) => this.emit("connectionError", player, error));
|
|
221
|
-
player.on("volumeChange", (old, volume) => this.emit("volumeChange", player, old, volume));
|
|
222
|
-
player.on("queueAdd", (track) => this.emit("queueAdd", player, track));
|
|
223
|
-
player.on("queueAddList", (tracks) => this.emit("queueAddList", player, tracks));
|
|
224
|
-
player.on("queueRemove", (track, index) => this.emit("queueRemove", player, track, index));
|
|
225
|
-
player.on("playerPause", (track) => this.emit("playerPause", player, track));
|
|
226
|
-
player.on("playerResume", (track) => this.emit("playerResume", player, track));
|
|
226
|
+
player.on("volumeChange", (old, volume) => this.emit("volumeChange", player, old as number, volume as number));
|
|
227
|
+
player.on("queueAdd", (track) => this.emit("queueAdd", player, track as Track));
|
|
228
|
+
player.on("queueAddList", (tracks) => this.emit("queueAddList", player, tracks as Track[]));
|
|
229
|
+
player.on("queueRemove", (track, index) => this.emit("queueRemove", player, track as Track, index));
|
|
230
|
+
player.on("playerPause", (track) => this.emit("playerPause", player, track as Track));
|
|
231
|
+
player.on("playerResume", (track) => this.emit("playerResume", player, track as Track));
|
|
227
232
|
player.on("playerStop", () => this.emit("playerStop", player));
|
|
228
233
|
player.on("playerDestroy", () => {
|
|
229
234
|
this.emit("playerDestroy", player);
|
package/src/types/index.ts
CHANGED
|
@@ -232,6 +232,27 @@ export interface ProgressBarOptions {
|
|
|
232
232
|
progressChar?: string;
|
|
233
233
|
}
|
|
234
234
|
|
|
235
|
+
/**
|
|
236
|
+
* Options for saving tracks
|
|
237
|
+
*
|
|
238
|
+
* @example
|
|
239
|
+
* const options: SaveOptions = {
|
|
240
|
+
* filename: "my-song.mp3",
|
|
241
|
+
* quality: "high",
|
|
242
|
+
* timeout: 30000
|
|
243
|
+
* };
|
|
244
|
+
*/
|
|
245
|
+
export interface SaveOptions {
|
|
246
|
+
/** Optional filename for the saved file */
|
|
247
|
+
filename?: string;
|
|
248
|
+
/** Quality of the saved audio ("high" | "low") */
|
|
249
|
+
quality?: "high" | "low";
|
|
250
|
+
/** Timeout in milliseconds for the save operation */
|
|
251
|
+
timeout?: number;
|
|
252
|
+
/** Additional metadata to include */
|
|
253
|
+
metadata?: Record<string, any>;
|
|
254
|
+
}
|
|
255
|
+
|
|
235
256
|
export type LoopMode = "off" | "track" | "queue";
|
|
236
257
|
|
|
237
258
|
/**
|
|
@@ -332,70 +353,89 @@ export interface ExtensionSearchRequest {
|
|
|
332
353
|
*
|
|
333
354
|
* @example
|
|
334
355
|
*
|
|
335
|
-
*
|
|
356
|
+
* manager.on("willPlay", (player, track) => {
|
|
336
357
|
* console.log(`Up next: ${track.title}`);
|
|
337
358
|
* });
|
|
338
359
|
*
|
|
339
|
-
*
|
|
360
|
+
* manager.on("trackEnd", (player, track) => {
|
|
340
361
|
* console.log(`Now playing: ${track.title}`);
|
|
341
362
|
* });
|
|
342
363
|
*
|
|
343
|
-
*
|
|
364
|
+
* manager.on("queueAdd", (player, track) => {
|
|
344
365
|
* console.log(`Queue added: ${track.title}`);
|
|
345
366
|
* });
|
|
346
367
|
*
|
|
347
|
-
*
|
|
368
|
+
* manager.on("queueAddList", (player, tracks) => {
|
|
348
369
|
* console.log(`Queue added: ${tracks.length} tracks`);
|
|
349
370
|
* });
|
|
350
371
|
*
|
|
351
|
-
*
|
|
372
|
+
* manager.on("queueRemove", (player, track, index) => {
|
|
352
373
|
* console.log(`Queue removed: ${track.title} at index ${index}`);
|
|
353
374
|
* });
|
|
354
375
|
*
|
|
355
|
-
*
|
|
376
|
+
* manager.on("playerPause", (player, track) => {
|
|
356
377
|
* console.log(`Player paused: ${track.title}`);
|
|
357
378
|
* });
|
|
358
379
|
*
|
|
359
|
-
*
|
|
380
|
+
* manager.on("playerResume", (player, track) => {
|
|
360
381
|
* console.log(`Player resumed: ${track.title}`);
|
|
361
382
|
* });
|
|
362
383
|
*
|
|
363
|
-
*
|
|
384
|
+
* manager.on("playerStop", (player) => {
|
|
364
385
|
* console.log("Player stopped");
|
|
365
386
|
* });
|
|
366
387
|
*
|
|
367
|
-
*
|
|
388
|
+
* manager.on("playerDestroy", (player) => {
|
|
368
389
|
* console.log("Player destroyed");
|
|
369
390
|
* });
|
|
370
391
|
*
|
|
371
|
-
*
|
|
392
|
+
* manager.on("ttsStart", (player, payload) => {
|
|
372
393
|
* console.log(`TTS started: ${payload.text}`);
|
|
373
394
|
* });
|
|
374
395
|
*
|
|
375
|
-
*
|
|
396
|
+
* manager.on("ttsEnd", (player) => {
|
|
376
397
|
* console.log("TTS ended");
|
|
377
398
|
* });
|
|
378
399
|
*
|
|
379
|
-
*
|
|
400
|
+
* manager.on("playerError", (player, error, track) => {
|
|
380
401
|
* console.log(`Player error: ${error.message}`);
|
|
381
402
|
* });
|
|
382
403
|
*
|
|
383
|
-
*
|
|
404
|
+
* manager.on("connectionError", (player, error) => {
|
|
384
405
|
* console.log(`Connection error: ${error.message}`);
|
|
385
406
|
* });
|
|
386
|
-
*
|
|
407
|
+
* manager.on("trackStart", (player, track) => {
|
|
387
408
|
* console.log(`Track started: ${track.title}`);
|
|
388
409
|
* });
|
|
389
410
|
*
|
|
390
|
-
*
|
|
411
|
+
* manager.on("volumeChange", (player, oldVolume, newVolume) => {
|
|
391
412
|
* console.log(`Volume changed: ${oldVolume} -> ${newVolume}`);
|
|
392
413
|
* });
|
|
393
414
|
*
|
|
394
|
-
*
|
|
415
|
+
* manager.on("queueEnd", (player) => {
|
|
395
416
|
* console.log("Queue finished");
|
|
396
417
|
* });
|
|
397
418
|
*
|
|
398
419
|
*/
|
|
420
|
+
export interface ManagerEvents {
|
|
421
|
+
debug: [message: string, ...args: any[]];
|
|
422
|
+
willPlay: [player: Player, track: Track, upcomingTracks: Track[]];
|
|
423
|
+
trackStart: [player: Player, track: Track];
|
|
424
|
+
trackEnd: [player: Player, track: Track];
|
|
425
|
+
queueEnd: [player: Player];
|
|
426
|
+
playerError: [player: Player, error: Error, track?: Track];
|
|
427
|
+
connectionError: [player: Player, error: Error];
|
|
428
|
+
volumeChange: [player: Player, oldVolume: number, newVolume: number];
|
|
429
|
+
queueAdd: [player: Player, track: Track];
|
|
430
|
+
queueAddList: [player: Player, tracks: Track[]];
|
|
431
|
+
queueRemove: [player: Player, track: Track, index: number];
|
|
432
|
+
playerPause: [player: Player, track: Track];
|
|
433
|
+
playerResume: [player: Player, track: Track];
|
|
434
|
+
playerStop: [player: Player];
|
|
435
|
+
playerDestroy: [player: Player];
|
|
436
|
+
ttsStart: [player: Player, payload: { text?: string; track?: Track }];
|
|
437
|
+
ttsEnd: [player: Player];
|
|
438
|
+
}
|
|
399
439
|
export interface PlayerEvents {
|
|
400
440
|
debug: [message: string, ...args: any[]];
|
|
401
441
|
willPlay: [track: Track, upcomingTracks: Track[]];
|