lavalink-client 2.7.6 → 2.7.7
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/index.d.mts +87 -0
- package/dist/index.d.ts +87 -0
- package/dist/index.js +27 -0
- package/dist/index.mjs +27 -0
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -1959,6 +1959,66 @@ interface PlayOptions extends LavalinkPlayOptions {
|
|
|
1959
1959
|
clientTrack?: Track | UnresolvedTrack;
|
|
1960
1960
|
}
|
|
1961
1961
|
|
|
1962
|
+
type NodeLinkEventTypes = "PlayerCreatedEvent" | "PlayerDestroyedEvent" | "PlayerConnectedEvent" | "PlayerReconnectingEvent" | "VolumeChangedEvent" | "FiltersChangedEvent" | "SeekEvent" | "PauseEvent" | "ConnectionStatusEvent" | "MixStartedEvent" | "MixEndedEvent";
|
|
1963
|
+
interface NodeLinkBaseEvent {
|
|
1964
|
+
op: "event";
|
|
1965
|
+
type: NodeLinkEventTypes;
|
|
1966
|
+
guildId: string;
|
|
1967
|
+
}
|
|
1968
|
+
interface PlayerCreatedEvent extends NodeLinkBaseEvent {
|
|
1969
|
+
type: "PlayerCreatedEvent";
|
|
1970
|
+
}
|
|
1971
|
+
interface PlayerDestroyedEvent extends NodeLinkBaseEvent {
|
|
1972
|
+
type: "PlayerDestroyedEvent";
|
|
1973
|
+
}
|
|
1974
|
+
interface PlayerConnectedEvent extends NodeLinkBaseEvent {
|
|
1975
|
+
type: "PlayerConnectedEvent";
|
|
1976
|
+
}
|
|
1977
|
+
interface PlayerReconnectingEvent extends NodeLinkBaseEvent {
|
|
1978
|
+
type: "PlayerReconnectingEvent";
|
|
1979
|
+
}
|
|
1980
|
+
interface VolumeChangedEvent extends NodeLinkBaseEvent {
|
|
1981
|
+
type: "VolumeChangedEvent";
|
|
1982
|
+
/** New volume level (0-1000) */
|
|
1983
|
+
volume: number;
|
|
1984
|
+
}
|
|
1985
|
+
interface FiltersChangedEvent extends NodeLinkBaseEvent {
|
|
1986
|
+
type: "FiltersChangedEvent";
|
|
1987
|
+
filters: LavalinkFilterData;
|
|
1988
|
+
}
|
|
1989
|
+
interface SeekEvent extends NodeLinkBaseEvent {
|
|
1990
|
+
type: "SeekEvent";
|
|
1991
|
+
/** New position in milliseconds */
|
|
1992
|
+
position: number;
|
|
1993
|
+
}
|
|
1994
|
+
interface PauseEvent extends NodeLinkBaseEvent {
|
|
1995
|
+
type: "PauseEvent";
|
|
1996
|
+
/** Whether playback is now paused (true) or resumed (false) */
|
|
1997
|
+
paused: boolean;
|
|
1998
|
+
}
|
|
1999
|
+
interface ConnectionStatusEvent extends NodeLinkBaseEvent {
|
|
2000
|
+
type: "ConnectionStatusEvent";
|
|
2001
|
+
/** Current connection status */
|
|
2002
|
+
connected: boolean;
|
|
2003
|
+
}
|
|
2004
|
+
interface MixStartedEvent extends NodeLinkBaseEvent {
|
|
2005
|
+
type: "MixStartedEvent";
|
|
2006
|
+
/** Unique identifier for the mix layer */
|
|
2007
|
+
mixId: string;
|
|
2008
|
+
/** Full track information of the mixed layer */
|
|
2009
|
+
track: LavalinkTrack;
|
|
2010
|
+
/** Volume of the mixed layer (0.0 to 1.0) */
|
|
2011
|
+
volume: number;
|
|
2012
|
+
}
|
|
2013
|
+
interface MixEndedEvent extends NodeLinkBaseEvent {
|
|
2014
|
+
type: "MixEndedEvent";
|
|
2015
|
+
/** Unique identifier for the mix layer */
|
|
2016
|
+
mixId: string;
|
|
2017
|
+
/** Reason the mix layer ended (FINISHED, REMOVED, ERROR, MAIN_ENDED) */
|
|
2018
|
+
reason: "FINISHED" | "REMOVED" | "ERROR" | "MAIN_ENDED" | string;
|
|
2019
|
+
}
|
|
2020
|
+
type NodeLinkEventPayload<T extends NodeLinkEventTypes> = T extends "PlayerCreatedEvent" ? PlayerCreatedEvent : T extends "PlayerDestroyedEvent" ? PlayerDestroyedEvent : T extends "PlayerConnectedEvent" ? PlayerConnectedEvent : T extends "PlayerReconnectingEvent" ? PlayerReconnectingEvent : T extends "VolumeChangedEvent" ? VolumeChangedEvent : T extends "FiltersChangedEvent" ? FiltersChangedEvent : T extends "SeekEvent" ? SeekEvent : T extends "PauseEvent" ? PauseEvent : T extends "ConnectionStatusEvent" ? ConnectionStatusEvent : T extends "MixStartedEvent" ? MixStartedEvent : T extends "MixEndedEvent" ? MixEndedEvent : never;
|
|
2021
|
+
|
|
1962
2022
|
/** Ability to manipulate fetch requests */
|
|
1963
2023
|
type ModifyRequest = (options: RequestInit & {
|
|
1964
2024
|
path: string;
|
|
@@ -2224,6 +2284,25 @@ interface NodeManagerEvents {
|
|
|
2224
2284
|
sessionId: string;
|
|
2225
2285
|
op: "ready";
|
|
2226
2286
|
}, players: LavalinkPlayer[] | InvalidLavalinkRestRequest) => void;
|
|
2287
|
+
/**
|
|
2288
|
+
* Event Handler for Nodelink specific events https://nodelink.js.org/docs/api/websocket Fully typed and generic based on the eventName.
|
|
2289
|
+
* @event Manager.nodeManager#nodeLinkEvent
|
|
2290
|
+
* @example
|
|
2291
|
+
*
|
|
2292
|
+
* ```ts
|
|
2293
|
+
* this.nodeManager.on("nodeLinkEvent", (node, event, player, track, payload) => {
|
|
2294
|
+
* if (event === "SeekEvent") {
|
|
2295
|
+
* console.log("new position:", payload.position);
|
|
2296
|
+
* }
|
|
2297
|
+
* if (event === "FiltersChangedEvent") {
|
|
2298
|
+
* console.log("new filters state", payload.filters);
|
|
2299
|
+
* }
|
|
2300
|
+
* });
|
|
2301
|
+
* ```
|
|
2302
|
+
*/
|
|
2303
|
+
"nodeLinkEvent": (...args: {
|
|
2304
|
+
[K in NodeLinkEventTypes]: [node: LavalinkNode, event: K, player: Player, track: Track | null, payload: NodeLinkEventPayload<K>];
|
|
2305
|
+
}[NodeLinkEventTypes]) => void;
|
|
2227
2306
|
}
|
|
2228
2307
|
declare enum ReconnectionState {
|
|
2229
2308
|
IDLE = "IDLE",
|
|
@@ -2721,6 +2800,14 @@ declare class LavalinkNode {
|
|
|
2721
2800
|
private message;
|
|
2722
2801
|
/** @private middleware util function for handling all kind of events from websocket */
|
|
2723
2802
|
private handleEvent;
|
|
2803
|
+
/**
|
|
2804
|
+
* nodeLink specific events handling https://nodelink.js.org/docs/api/websocket#incoming-events-server--client
|
|
2805
|
+
* @param eventName
|
|
2806
|
+
* @param player
|
|
2807
|
+
* @param track
|
|
2808
|
+
* @param payload
|
|
2809
|
+
*/
|
|
2810
|
+
private nodeLinkEventHandler;
|
|
2724
2811
|
private getTrackOfPayload;
|
|
2725
2812
|
/** @private util function for handling trackStart event */
|
|
2726
2813
|
private trackStart;
|
package/dist/index.d.ts
CHANGED
|
@@ -1959,6 +1959,66 @@ interface PlayOptions extends LavalinkPlayOptions {
|
|
|
1959
1959
|
clientTrack?: Track | UnresolvedTrack;
|
|
1960
1960
|
}
|
|
1961
1961
|
|
|
1962
|
+
type NodeLinkEventTypes = "PlayerCreatedEvent" | "PlayerDestroyedEvent" | "PlayerConnectedEvent" | "PlayerReconnectingEvent" | "VolumeChangedEvent" | "FiltersChangedEvent" | "SeekEvent" | "PauseEvent" | "ConnectionStatusEvent" | "MixStartedEvent" | "MixEndedEvent";
|
|
1963
|
+
interface NodeLinkBaseEvent {
|
|
1964
|
+
op: "event";
|
|
1965
|
+
type: NodeLinkEventTypes;
|
|
1966
|
+
guildId: string;
|
|
1967
|
+
}
|
|
1968
|
+
interface PlayerCreatedEvent extends NodeLinkBaseEvent {
|
|
1969
|
+
type: "PlayerCreatedEvent";
|
|
1970
|
+
}
|
|
1971
|
+
interface PlayerDestroyedEvent extends NodeLinkBaseEvent {
|
|
1972
|
+
type: "PlayerDestroyedEvent";
|
|
1973
|
+
}
|
|
1974
|
+
interface PlayerConnectedEvent extends NodeLinkBaseEvent {
|
|
1975
|
+
type: "PlayerConnectedEvent";
|
|
1976
|
+
}
|
|
1977
|
+
interface PlayerReconnectingEvent extends NodeLinkBaseEvent {
|
|
1978
|
+
type: "PlayerReconnectingEvent";
|
|
1979
|
+
}
|
|
1980
|
+
interface VolumeChangedEvent extends NodeLinkBaseEvent {
|
|
1981
|
+
type: "VolumeChangedEvent";
|
|
1982
|
+
/** New volume level (0-1000) */
|
|
1983
|
+
volume: number;
|
|
1984
|
+
}
|
|
1985
|
+
interface FiltersChangedEvent extends NodeLinkBaseEvent {
|
|
1986
|
+
type: "FiltersChangedEvent";
|
|
1987
|
+
filters: LavalinkFilterData;
|
|
1988
|
+
}
|
|
1989
|
+
interface SeekEvent extends NodeLinkBaseEvent {
|
|
1990
|
+
type: "SeekEvent";
|
|
1991
|
+
/** New position in milliseconds */
|
|
1992
|
+
position: number;
|
|
1993
|
+
}
|
|
1994
|
+
interface PauseEvent extends NodeLinkBaseEvent {
|
|
1995
|
+
type: "PauseEvent";
|
|
1996
|
+
/** Whether playback is now paused (true) or resumed (false) */
|
|
1997
|
+
paused: boolean;
|
|
1998
|
+
}
|
|
1999
|
+
interface ConnectionStatusEvent extends NodeLinkBaseEvent {
|
|
2000
|
+
type: "ConnectionStatusEvent";
|
|
2001
|
+
/** Current connection status */
|
|
2002
|
+
connected: boolean;
|
|
2003
|
+
}
|
|
2004
|
+
interface MixStartedEvent extends NodeLinkBaseEvent {
|
|
2005
|
+
type: "MixStartedEvent";
|
|
2006
|
+
/** Unique identifier for the mix layer */
|
|
2007
|
+
mixId: string;
|
|
2008
|
+
/** Full track information of the mixed layer */
|
|
2009
|
+
track: LavalinkTrack;
|
|
2010
|
+
/** Volume of the mixed layer (0.0 to 1.0) */
|
|
2011
|
+
volume: number;
|
|
2012
|
+
}
|
|
2013
|
+
interface MixEndedEvent extends NodeLinkBaseEvent {
|
|
2014
|
+
type: "MixEndedEvent";
|
|
2015
|
+
/** Unique identifier for the mix layer */
|
|
2016
|
+
mixId: string;
|
|
2017
|
+
/** Reason the mix layer ended (FINISHED, REMOVED, ERROR, MAIN_ENDED) */
|
|
2018
|
+
reason: "FINISHED" | "REMOVED" | "ERROR" | "MAIN_ENDED" | string;
|
|
2019
|
+
}
|
|
2020
|
+
type NodeLinkEventPayload<T extends NodeLinkEventTypes> = T extends "PlayerCreatedEvent" ? PlayerCreatedEvent : T extends "PlayerDestroyedEvent" ? PlayerDestroyedEvent : T extends "PlayerConnectedEvent" ? PlayerConnectedEvent : T extends "PlayerReconnectingEvent" ? PlayerReconnectingEvent : T extends "VolumeChangedEvent" ? VolumeChangedEvent : T extends "FiltersChangedEvent" ? FiltersChangedEvent : T extends "SeekEvent" ? SeekEvent : T extends "PauseEvent" ? PauseEvent : T extends "ConnectionStatusEvent" ? ConnectionStatusEvent : T extends "MixStartedEvent" ? MixStartedEvent : T extends "MixEndedEvent" ? MixEndedEvent : never;
|
|
2021
|
+
|
|
1962
2022
|
/** Ability to manipulate fetch requests */
|
|
1963
2023
|
type ModifyRequest = (options: RequestInit & {
|
|
1964
2024
|
path: string;
|
|
@@ -2224,6 +2284,25 @@ interface NodeManagerEvents {
|
|
|
2224
2284
|
sessionId: string;
|
|
2225
2285
|
op: "ready";
|
|
2226
2286
|
}, players: LavalinkPlayer[] | InvalidLavalinkRestRequest) => void;
|
|
2287
|
+
/**
|
|
2288
|
+
* Event Handler for Nodelink specific events https://nodelink.js.org/docs/api/websocket Fully typed and generic based on the eventName.
|
|
2289
|
+
* @event Manager.nodeManager#nodeLinkEvent
|
|
2290
|
+
* @example
|
|
2291
|
+
*
|
|
2292
|
+
* ```ts
|
|
2293
|
+
* this.nodeManager.on("nodeLinkEvent", (node, event, player, track, payload) => {
|
|
2294
|
+
* if (event === "SeekEvent") {
|
|
2295
|
+
* console.log("new position:", payload.position);
|
|
2296
|
+
* }
|
|
2297
|
+
* if (event === "FiltersChangedEvent") {
|
|
2298
|
+
* console.log("new filters state", payload.filters);
|
|
2299
|
+
* }
|
|
2300
|
+
* });
|
|
2301
|
+
* ```
|
|
2302
|
+
*/
|
|
2303
|
+
"nodeLinkEvent": (...args: {
|
|
2304
|
+
[K in NodeLinkEventTypes]: [node: LavalinkNode, event: K, player: Player, track: Track | null, payload: NodeLinkEventPayload<K>];
|
|
2305
|
+
}[NodeLinkEventTypes]) => void;
|
|
2227
2306
|
}
|
|
2228
2307
|
declare enum ReconnectionState {
|
|
2229
2308
|
IDLE = "IDLE",
|
|
@@ -2721,6 +2800,14 @@ declare class LavalinkNode {
|
|
|
2721
2800
|
private message;
|
|
2722
2801
|
/** @private middleware util function for handling all kind of events from websocket */
|
|
2723
2802
|
private handleEvent;
|
|
2803
|
+
/**
|
|
2804
|
+
* nodeLink specific events handling https://nodelink.js.org/docs/api/websocket#incoming-events-server--client
|
|
2805
|
+
* @param eventName
|
|
2806
|
+
* @param player
|
|
2807
|
+
* @param track
|
|
2808
|
+
* @param payload
|
|
2809
|
+
*/
|
|
2810
|
+
private nodeLinkEventHandler;
|
|
2724
2811
|
private getTrackOfPayload;
|
|
2725
2812
|
/** @private util function for handling trackStart event */
|
|
2726
2813
|
private trackStart;
|
package/dist/index.js
CHANGED
|
@@ -2157,6 +2157,23 @@ var LavalinkNode = class {
|
|
|
2157
2157
|
if (!payload?.guildId) return;
|
|
2158
2158
|
const player = this._LManager.getPlayer(payload.guildId);
|
|
2159
2159
|
if (!player) return;
|
|
2160
|
+
const NodeLinkEventType = payload.type;
|
|
2161
|
+
const NodeLinkExclusiveEvents = [
|
|
2162
|
+
"PlayerCreatedEvent",
|
|
2163
|
+
"PlayerDestroyedEvent",
|
|
2164
|
+
"PlayerConnectedEvent",
|
|
2165
|
+
"PlayerReconnectingEvent",
|
|
2166
|
+
"VolumeChangedEvent",
|
|
2167
|
+
"FiltersChangedEvent",
|
|
2168
|
+
"SeekEvent",
|
|
2169
|
+
"PauseEvent",
|
|
2170
|
+
"ConnectionStatusEvent",
|
|
2171
|
+
"MixStartedEvent",
|
|
2172
|
+
"MixEndedEvent"
|
|
2173
|
+
];
|
|
2174
|
+
if (NodeLinkExclusiveEvents.includes(NodeLinkEventType) && (!this.info || this.info.isNodelink)) {
|
|
2175
|
+
return this.nodeLinkEventHandler(NodeLinkEventType, player, player.queue.current, payload);
|
|
2176
|
+
}
|
|
2160
2177
|
switch (payload.type) {
|
|
2161
2178
|
case "TrackStartEvent":
|
|
2162
2179
|
this.trackStart(player, player.queue.current, payload);
|
|
@@ -2200,6 +2217,16 @@ var LavalinkNode = class {
|
|
|
2200
2217
|
}
|
|
2201
2218
|
return;
|
|
2202
2219
|
}
|
|
2220
|
+
/**
|
|
2221
|
+
* nodeLink specific events handling https://nodelink.js.org/docs/api/websocket#incoming-events-server--client
|
|
2222
|
+
* @param eventName
|
|
2223
|
+
* @param player
|
|
2224
|
+
* @param track
|
|
2225
|
+
* @param payload
|
|
2226
|
+
*/
|
|
2227
|
+
async nodeLinkEventHandler(eventName, player, track, payload) {
|
|
2228
|
+
this.NodeManager.emit("nodeLinkEvent", this, eventName, player, track, payload);
|
|
2229
|
+
}
|
|
2203
2230
|
getTrackOfPayload(payload) {
|
|
2204
2231
|
return "track" in payload ? this._LManager.utils.buildTrack(payload.track, void 0) : null;
|
|
2205
2232
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -2096,6 +2096,23 @@ var LavalinkNode = class {
|
|
|
2096
2096
|
if (!payload?.guildId) return;
|
|
2097
2097
|
const player = this._LManager.getPlayer(payload.guildId);
|
|
2098
2098
|
if (!player) return;
|
|
2099
|
+
const NodeLinkEventType = payload.type;
|
|
2100
|
+
const NodeLinkExclusiveEvents = [
|
|
2101
|
+
"PlayerCreatedEvent",
|
|
2102
|
+
"PlayerDestroyedEvent",
|
|
2103
|
+
"PlayerConnectedEvent",
|
|
2104
|
+
"PlayerReconnectingEvent",
|
|
2105
|
+
"VolumeChangedEvent",
|
|
2106
|
+
"FiltersChangedEvent",
|
|
2107
|
+
"SeekEvent",
|
|
2108
|
+
"PauseEvent",
|
|
2109
|
+
"ConnectionStatusEvent",
|
|
2110
|
+
"MixStartedEvent",
|
|
2111
|
+
"MixEndedEvent"
|
|
2112
|
+
];
|
|
2113
|
+
if (NodeLinkExclusiveEvents.includes(NodeLinkEventType) && (!this.info || this.info.isNodelink)) {
|
|
2114
|
+
return this.nodeLinkEventHandler(NodeLinkEventType, player, player.queue.current, payload);
|
|
2115
|
+
}
|
|
2099
2116
|
switch (payload.type) {
|
|
2100
2117
|
case "TrackStartEvent":
|
|
2101
2118
|
this.trackStart(player, player.queue.current, payload);
|
|
@@ -2139,6 +2156,16 @@ var LavalinkNode = class {
|
|
|
2139
2156
|
}
|
|
2140
2157
|
return;
|
|
2141
2158
|
}
|
|
2159
|
+
/**
|
|
2160
|
+
* nodeLink specific events handling https://nodelink.js.org/docs/api/websocket#incoming-events-server--client
|
|
2161
|
+
* @param eventName
|
|
2162
|
+
* @param player
|
|
2163
|
+
* @param track
|
|
2164
|
+
* @param payload
|
|
2165
|
+
*/
|
|
2166
|
+
async nodeLinkEventHandler(eventName, player, track, payload) {
|
|
2167
|
+
this.NodeManager.emit("nodeLinkEvent", this, eventName, player, track, payload);
|
|
2168
|
+
}
|
|
2142
2169
|
getTrackOfPayload(payload) {
|
|
2143
2170
|
return "track" in payload ? this._LManager.utils.buildTrack(payload.track, void 0) : null;
|
|
2144
2171
|
}
|
package/package.json
CHANGED