ziplayer 0.3.3 → 0.3.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/AGENTS.md +717 -653
- package/README.md +658 -639
- 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 +104 -50
- package/dist/plugins/index.js.map +1 -1
- package/dist/structures/Player.d.ts +74 -43
- package/dist/structures/Player.d.ts.map +1 -1
- package/dist/structures/Player.js +443 -114
- package/dist/structures/Player.js.map +1 -1
- package/dist/structures/PlayerManager.d.ts +41 -6
- package/dist/structures/PlayerManager.d.ts.map +1 -1
- package/dist/structures/PlayerManager.js +94 -125
- package/dist/structures/PlayerManager.js.map +1 -1
- package/dist/structures/StreamManager.d.ts +1 -0
- package/dist/structures/StreamManager.d.ts.map +1 -1
- package/dist/structures/StreamManager.js +1 -0
- package/dist/structures/StreamManager.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 +38 -11
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +7 -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 +136 -53
- package/src/structures/Player.ts +2940 -2544
- package/src/structures/PlayerManager.ts +916 -955
- package/src/structures/Queue.ts +621 -621
- package/src/structures/StreamManager.ts +2 -0
- package/src/types/extension.ts +3 -0
- package/src/types/index.ts +43 -11
|
@@ -12,6 +12,7 @@ export interface ManagedStream {
|
|
|
12
12
|
metadata: {
|
|
13
13
|
source: string;
|
|
14
14
|
isPreload: boolean;
|
|
15
|
+
isRemote: boolean;
|
|
15
16
|
priority: number;
|
|
16
17
|
};
|
|
17
18
|
listeners: {
|
|
@@ -128,6 +129,7 @@ export class StreamManager extends EventEmitter {
|
|
|
128
129
|
source: track.source || "unknown",
|
|
129
130
|
isPreload: metadata.isPreload || false,
|
|
130
131
|
priority: metadata.priority || 0,
|
|
132
|
+
isRemote: metadata.isRemote || false,
|
|
131
133
|
...metadata,
|
|
132
134
|
},
|
|
133
135
|
listeners,
|
package/src/types/extension.ts
CHANGED
package/src/types/index.ts
CHANGED
|
@@ -4,6 +4,12 @@ import type { PlayerManager } from "../structures/PlayerManager";
|
|
|
4
4
|
import type { AudioFilter } from "./fillter";
|
|
5
5
|
import type { SourcePluginLike } from "./plugin";
|
|
6
6
|
import type { AudioResource } from "@discordjs/voice";
|
|
7
|
+
|
|
8
|
+
export enum PlaybackMode {
|
|
9
|
+
NATIVE = "native",
|
|
10
|
+
REMOTE = "remote",
|
|
11
|
+
FORWARD = "forward",
|
|
12
|
+
}
|
|
7
13
|
/**
|
|
8
14
|
* Represents a music track with metadata and streaming information.
|
|
9
15
|
*
|
|
@@ -118,8 +124,20 @@ export interface SearchScore {
|
|
|
118
124
|
*/
|
|
119
125
|
export interface StreamInfo {
|
|
120
126
|
stream: Readable;
|
|
121
|
-
type: "webm/opus" | "ogg/opus" | "arbitrary";
|
|
127
|
+
type: "webm/opus" | "ogg/opus" | "arbitrary" | string;
|
|
122
128
|
metadata?: Record<string, any>;
|
|
129
|
+
|
|
130
|
+
remote?: boolean;
|
|
131
|
+
|
|
132
|
+
handle?: {
|
|
133
|
+
play(): Promise<void>;
|
|
134
|
+
stop(): Promise<void>;
|
|
135
|
+
pause(): Promise<void>;
|
|
136
|
+
resume(): Promise<void>;
|
|
137
|
+
seek(position: number): Promise<void>;
|
|
138
|
+
setVolume(volume: number): Promise<void>;
|
|
139
|
+
destroy(): Promise<void>;
|
|
140
|
+
};
|
|
123
141
|
}
|
|
124
142
|
|
|
125
143
|
/** Passed to each {@link TrackMiddleware} run (before stream resolution). */
|
|
@@ -135,20 +153,13 @@ export interface TrackMiddlewareContext {
|
|
|
135
153
|
*/
|
|
136
154
|
export type TrackMiddleware = (track: Track, context: TrackMiddlewareContext) => void | Track | Promise<void | Track>;
|
|
137
155
|
|
|
138
|
-
/** Options for {@link PlayerManager.
|
|
156
|
+
/** Options for {@link PlayerManager.subscribeForwardMirror}. */
|
|
139
157
|
export interface PlaybackMirrorOptions {
|
|
140
158
|
leaderGuildId: string;
|
|
141
159
|
followerGuildIds: string[];
|
|
142
|
-
/** User id passed to follower `play()` (often the bot application id). */
|
|
143
|
-
mirrorUserId: string;
|
|
144
|
-
/** When true (default), follower `setVolume` tracks the leader. */
|
|
145
|
-
syncVolume?: boolean;
|
|
146
160
|
/**
|
|
147
161
|
* When enabled, follower connections subscribe directly
|
|
148
|
-
* to leader.audioPlayer
|
|
149
|
-
*
|
|
150
|
-
* Greatly reduces bandwidth/CPU usage.
|
|
151
|
-
*
|
|
162
|
+
* to leader.audioPlayer
|
|
152
163
|
* Default: true
|
|
153
164
|
*/
|
|
154
165
|
forwardMode?: boolean;
|
|
@@ -427,12 +438,28 @@ export interface PreloadState {
|
|
|
427
438
|
isBeingUsed: boolean;
|
|
428
439
|
}
|
|
429
440
|
|
|
441
|
+
export interface ForwardHealthStatus {
|
|
442
|
+
guildId: string;
|
|
443
|
+
healthy: boolean;
|
|
444
|
+
role: "leader" | "follower" | "none";
|
|
445
|
+
issues: string[];
|
|
446
|
+
details: {
|
|
447
|
+
leaderId?: string;
|
|
448
|
+
followerCount?: number;
|
|
449
|
+
connectionState?: string;
|
|
450
|
+
audioPlayerState?: string;
|
|
451
|
+
};
|
|
452
|
+
}
|
|
453
|
+
|
|
430
454
|
export interface PlayerStats {
|
|
431
455
|
totalPlayers: number;
|
|
456
|
+
leader: number;
|
|
457
|
+
follower: number;
|
|
432
458
|
activePlayers: number;
|
|
433
459
|
pausedPlayers: number;
|
|
434
460
|
connectedPlayers: number;
|
|
435
461
|
totalTracksInQueue: number;
|
|
462
|
+
forwardHealthStatus: ForwardHealthStatus[];
|
|
436
463
|
}
|
|
437
464
|
|
|
438
465
|
export interface StreamSlot {
|
|
@@ -553,7 +580,10 @@ export interface ManagerEvents {
|
|
|
553
580
|
lyricsChange: [player: Player, track: Track, lyrics: any];
|
|
554
581
|
voiceCreate: [player: Player, evt: any];
|
|
555
582
|
stats: [stats: PlayerStats];
|
|
556
|
-
streamError: [error: Error, track: Track | null];
|
|
583
|
+
streamError: [player: Player, error: Error, track: Track | null];
|
|
584
|
+
|
|
585
|
+
forwardModeStart: [player: Player, leader: Player];
|
|
586
|
+
forwardModeEnd: [player: Player, leader: Player, reason: string | undefined];
|
|
557
587
|
}
|
|
558
588
|
export interface PlayerEvents {
|
|
559
589
|
debug: [message: string, ...args: any[]];
|
|
@@ -587,6 +617,8 @@ export interface PlayerEvents {
|
|
|
587
617
|
streamError: [error: Error, track: Track | null];
|
|
588
618
|
/** Emitted when player stats are updated (if enabled) */
|
|
589
619
|
stats: [stats: PlayerStats];
|
|
620
|
+
forwardModeStart: [leader: Player];
|
|
621
|
+
forwardModeEnd: [leader: Player, reason: string | undefined];
|
|
590
622
|
}
|
|
591
623
|
|
|
592
624
|
export * from "./fillter";
|