ziplayer 0.3.2 → 0.3.4
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/{AI-Guide.md → AGENTS.md} +717 -624
- package/README.md +658 -526
- package/dist/extensions/BaseExtension.d.ts +10 -1
- package/dist/extensions/BaseExtension.d.ts.map +1 -1
- package/dist/extensions/BaseExtension.js +27 -1
- package/dist/extensions/BaseExtension.js.map +1 -1
- package/dist/extensions/index.d.ts.map +1 -1
- package/dist/extensions/index.js +24 -6
- package/dist/extensions/index.js.map +1 -1
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +105 -51
- package/dist/plugins/index.js.map +1 -1
- package/dist/structures/Player.d.ts +90 -15
- package/dist/structures/Player.d.ts.map +1 -1
- package/dist/structures/Player.js +487 -81
- package/dist/structures/Player.js.map +1 -1
- package/dist/structures/PlayerManager.d.ts +70 -6
- package/dist/structures/PlayerManager.d.ts.map +1 -1
- package/dist/structures/PlayerManager.js +184 -19
- package/dist/structures/PlayerManager.js.map +1 -1
- package/dist/structures/Queue.d.ts +19 -0
- package/dist/structures/Queue.d.ts.map +1 -1
- package/dist/structures/Queue.js +21 -0
- package/dist/structures/Queue.js.map +1 -1
- package/dist/types/extension.d.ts +3 -0
- package/dist/types/extension.d.ts.map +1 -1
- package/dist/types/index.d.ts +69 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +13 -0
- package/dist/types/index.js.map +1 -1
- package/package.json +1 -1
- package/src/extensions/BaseExtension.ts +31 -1
- package/src/extensions/index.ts +30 -7
- package/src/plugins/index.ts +137 -54
- package/src/structures/Player.ts +2937 -2457
- package/src/structures/PlayerManager.ts +916 -725
- package/src/structures/Queue.ts +621 -599
- package/src/types/extension.ts +3 -0
- package/src/types/index.ts +80 -2
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { EventEmitter } from "events";
|
|
2
|
-
import { VoiceConnection, AudioPlayer as DiscordAudioPlayer } from "@discordjs/voice";
|
|
2
|
+
import { VoiceConnection, AudioPlayer as DiscordAudioPlayer, AudioResource } from "@discordjs/voice";
|
|
3
3
|
import { Readable } from "stream";
|
|
4
4
|
import type { BaseExtension } from "../extensions";
|
|
5
|
-
import type
|
|
5
|
+
import { PlaybackMode, type Track, type PlayerOptions, type PlayerEvents, type SourcePlugin, type SearchResult, type ProgressBarOptions, type LoopMode, type SaveOptions, type VoiceChannel, type PlayerSession, ForwardHealthStatus } from "../types";
|
|
6
6
|
import type { PlayerManager } from "./PlayerManager";
|
|
7
7
|
import { Queue } from "./Queue";
|
|
8
8
|
import { PluginManager } from "../plugins";
|
|
9
9
|
import { ExtensionManager } from "../extensions";
|
|
10
|
+
import { FilterManager } from "./FilterManager";
|
|
10
11
|
import { StreamManager } from "./StreamManager";
|
|
11
12
|
import { PreloadManager } from "./PreloadManager";
|
|
12
13
|
export declare interface Player {
|
|
@@ -55,23 +56,27 @@ export declare class Player extends EventEmitter {
|
|
|
55
56
|
audioPlayer: DiscordAudioPlayer;
|
|
56
57
|
queue: Queue;
|
|
57
58
|
volume: number;
|
|
58
|
-
isPlaying: boolean;
|
|
59
|
-
isPaused: boolean;
|
|
60
59
|
options: PlayerOptions;
|
|
60
|
+
userdata?: Record<string, any>;
|
|
61
|
+
_lastActivity: number;
|
|
62
|
+
_remotePaused: boolean;
|
|
63
|
+
currentResource: AudioResource | null;
|
|
64
|
+
destroyed: boolean;
|
|
65
|
+
manager: PlayerManager;
|
|
61
66
|
pluginManager: PluginManager;
|
|
62
67
|
extensionManager: ExtensionManager;
|
|
63
68
|
streamManager: StreamManager;
|
|
64
69
|
preloadManager: PreloadManager;
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
70
|
+
filter: FilterManager;
|
|
71
|
+
playbackMode: PlaybackMode;
|
|
72
|
+
forwardFollowers: Set<Player>;
|
|
73
|
+
forwardLeader: Player | null;
|
|
68
74
|
private leaveTimeout;
|
|
69
|
-
private currentResource;
|
|
70
75
|
private volumeInterval;
|
|
71
76
|
private stuckTimer;
|
|
72
77
|
private skipLoop;
|
|
73
|
-
private filter;
|
|
74
78
|
private refreshLock;
|
|
79
|
+
private remoteHandle;
|
|
75
80
|
private currentSlot;
|
|
76
81
|
private preloadEnabled;
|
|
77
82
|
private crossfadeEnabled;
|
|
@@ -98,7 +103,7 @@ export declare class Player extends EventEmitter {
|
|
|
98
103
|
private loudnessMaxBoostDb;
|
|
99
104
|
private loudnessMaxCutDb;
|
|
100
105
|
private loudnessLimiterCeiling;
|
|
101
|
-
private
|
|
106
|
+
private readonly trackMiddlewareChain;
|
|
102
107
|
private searchCache;
|
|
103
108
|
private readonly SEARCH_CACHE_TTL;
|
|
104
109
|
private ttsPlayer;
|
|
@@ -211,16 +216,14 @@ export declare class Player extends EventEmitter {
|
|
|
211
216
|
* @returns {Promise<AudioResource>} The AudioResource with filters and seek applied
|
|
212
217
|
*/
|
|
213
218
|
private createResource;
|
|
219
|
+
private mergeTrackPreserveRef;
|
|
220
|
+
private applyTrackMiddleware;
|
|
214
221
|
private getStream;
|
|
215
222
|
private isUnrecoverableStreamError;
|
|
216
223
|
/**
|
|
217
224
|
* Start playing a specific track immediately, replacing the current resource.
|
|
218
225
|
*/
|
|
219
226
|
private startTrack;
|
|
220
|
-
/**
|
|
221
|
-
* Swap preload slot to current slot
|
|
222
|
-
*/
|
|
223
|
-
private swapToCurrent;
|
|
224
227
|
/**
|
|
225
228
|
* Load fresh stream when no preload available
|
|
226
229
|
*/
|
|
@@ -228,7 +231,8 @@ export declare class Player extends EventEmitter {
|
|
|
228
231
|
/**
|
|
229
232
|
* Play the next track in the queue, handling errors and edge cases gracefully
|
|
230
233
|
*/
|
|
231
|
-
|
|
234
|
+
playNext(): Promise<boolean>;
|
|
235
|
+
private playRemote;
|
|
232
236
|
private ensureTTSPlayer;
|
|
233
237
|
/**
|
|
234
238
|
* Interrupt current music with a TTS track. Pauses music, swaps the
|
|
@@ -249,6 +253,71 @@ export declare class Player extends EventEmitter {
|
|
|
249
253
|
* await player.connect(voiceChannel);
|
|
250
254
|
*/
|
|
251
255
|
connect(channel: VoiceChannel): Promise<VoiceConnection>;
|
|
256
|
+
/**
|
|
257
|
+
* Subscribe this player to another player's playback stream.
|
|
258
|
+
*
|
|
259
|
+
* This enables "forward mode", where the follower player directly subscribes
|
|
260
|
+
* to the leader player's {@link audioPlayer} instead of creating its own stream.
|
|
261
|
+
*
|
|
262
|
+
* Greatly reduces CPU, bandwidth, and extractor usage because only the leader
|
|
263
|
+
* creates and decodes the audio resource.
|
|
264
|
+
*
|
|
265
|
+
* ## Features
|
|
266
|
+
* - Real-time shared playback
|
|
267
|
+
* - Followers may join at any time
|
|
268
|
+
* - Automatic track synchronization
|
|
269
|
+
* - Optional volume synchronization
|
|
270
|
+
* - Automatic cleanup on destroy
|
|
271
|
+
* - Supports unlimited followers
|
|
272
|
+
*
|
|
273
|
+
* ## Lifecycle
|
|
274
|
+
* - When the leader starts a track, followers automatically receive the same track metadata.
|
|
275
|
+
* - When the leader pauses/resumes/stops, followers are synchronized.
|
|
276
|
+
* - Destroying the leader automatically unsubscribes all followers.
|
|
277
|
+
* - Destroying a follower only removes that follower.
|
|
278
|
+
*
|
|
279
|
+
* ## Notes
|
|
280
|
+
* - Both players must already be connected to voice.
|
|
281
|
+
* - A player cannot subscribe to itself.
|
|
282
|
+
* - Existing playback subscriptions are automatically replaced.
|
|
283
|
+
*
|
|
284
|
+
* @param {Player} leader The leader player to subscribe to.
|
|
285
|
+
* @param options Additional playback mirror options.
|
|
286
|
+
* @param options.syncVolume When true, follower volume automatically follows the leader. Default: true.
|
|
287
|
+
*
|
|
288
|
+
* @returns {boolean} True if subscription succeeded.
|
|
289
|
+
*
|
|
290
|
+
* @example
|
|
291
|
+
* follower.subscribeTo(leader);
|
|
292
|
+
*
|
|
293
|
+
* @example
|
|
294
|
+
* follower.subscribeTo(leader, {
|
|
295
|
+
* syncVolume: true,
|
|
296
|
+
* });
|
|
297
|
+
*/
|
|
298
|
+
subscribeTo(leader: Player, options?: {
|
|
299
|
+
forwardMode?: boolean;
|
|
300
|
+
}): boolean;
|
|
301
|
+
/**
|
|
302
|
+
* Unsubscribe this player from its current playback leader.
|
|
303
|
+
*
|
|
304
|
+
* This disables forward mode and restores the player's own audioPlayer
|
|
305
|
+
* subscription back to its voice connection.
|
|
306
|
+
*
|
|
307
|
+
* Automatically emitted when:
|
|
308
|
+
* - The leader player is destroyed
|
|
309
|
+
* - This player is destroyed
|
|
310
|
+
* - A new leader subscription replaces the old one
|
|
311
|
+
*
|
|
312
|
+
* Emits:
|
|
313
|
+
* - `forwardModeEnd`
|
|
314
|
+
*
|
|
315
|
+
* @returns {boolean} True if a playback subscription existed and was removed.
|
|
316
|
+
*
|
|
317
|
+
* @example
|
|
318
|
+
* follower.unsubscribeForward();
|
|
319
|
+
*/
|
|
320
|
+
unsubscribeForward(reason?: string | undefined): boolean;
|
|
252
321
|
/**
|
|
253
322
|
* Pause the current track
|
|
254
323
|
*
|
|
@@ -523,6 +592,7 @@ export declare class Player extends EventEmitter {
|
|
|
523
592
|
* @returns {PlayerSession} The saved session data
|
|
524
593
|
*/
|
|
525
594
|
saveSession(): PlayerSession;
|
|
595
|
+
exitRemoteMode(): void;
|
|
526
596
|
/**
|
|
527
597
|
* Get serializable state (for manual persistence)
|
|
528
598
|
*/
|
|
@@ -553,6 +623,7 @@ export declare class Player extends EventEmitter {
|
|
|
553
623
|
};
|
|
554
624
|
totalStreams: number;
|
|
555
625
|
};
|
|
626
|
+
getForwardHealthStatus(): ForwardHealthStatus;
|
|
556
627
|
/**
|
|
557
628
|
* Get the size of the queue
|
|
558
629
|
*
|
|
@@ -617,5 +688,9 @@ export declare class Player extends EventEmitter {
|
|
|
617
688
|
*/
|
|
618
689
|
get relatedTracks(): Track[] | null;
|
|
619
690
|
get isLive(): boolean;
|
|
691
|
+
get isPlaying(): boolean;
|
|
692
|
+
get isPaused(): boolean;
|
|
693
|
+
get isIdle(): boolean;
|
|
694
|
+
get isBuffering(): boolean;
|
|
620
695
|
}
|
|
621
696
|
//# sourceMappingURL=Player.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../../src/structures/Player.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAKN,eAAe,EACf,WAAW,IAAI,kBAAkB,
|
|
1
|
+
{"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../../src/structures/Player.ts"],"names":[],"mappings":"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"}
|