Manager Events
Player Related Logs
Section titled “Player Related Logs”Monitor player activities and changes:
-
playerCreate➡️(player) => {}Triggered when a player is created. -
playerDestroy➡️(player, reason) => {}Triggered when a player is destroyed. Reason for destruction provided. -
playerDisconnect➡️(player, voiceChannelId) => {}Triggered when a player disconnects from a voice channel. -
playerMove➡️(player, oldChannelId, newChannelId) => {}Triggered when a player moves from one channel to another. Updating the voice channel is handled automatically by the client. -
playerSocketClosed➡️(player, payload) => {}Triggered when the player’s socket is closed. -
playerUpdate➡️(player) => {}Triggered when the player is updated. -
playerMuteChange** ➡️ **(player, selfMuted, serverMuted) => {}Triggered when the player’s voice state related to muting changed -
playerDeafChange➡️(player, selfDeafed, serverDeafed) => {}Triggered when the player’s voice state related to deafing changed -
playerSuppressChange➡️(player, suppress) => {}Triggered when the player’s voice state related to suppressing changed -
playerQueueEmptyStart➡️(player, timeoutMs) => {}Triggered when the queue empty handler started (the timeout) -
playerQueueEmptyEnd➡️(player) => {}Triggered when the queue empty handler finished (successfully) and thus destroyed the player -
playerQueueEmptyCancel➡️(player) => {}Triggered when the queue empty handler cancelled (e.g. because a new track got added) -
playerVoiceJoin➡️(player, userId) => {}~~ Added instead of the playerVoiceEmpty handler, emitted when a user joins the player-vc while there is a player Allows you to inmplement a custom playerVoiceEmpty handler -
playerVoiceLeave➡️(player, userId) => {}~~ Added instead of the playerVoiceEmpty handler, emitted when a user leaves (or. switches away) the player-vc while there is a player Allows you to inmplement a custom playerVoiceEmpty handler
Track / Manager Related Logs
Section titled “Track / Manager Related Logs”Handle track events and manage playback:
-
trackStart➡️(player, track, payload) => {}Triggered when a track starts playing. -
trackStuck➡️(player, track, payload) => {}Triggered when a track gets stuck (e.g., playback halts). -
trackError➡️(player, track, payload) => {}Triggered when an error occurs during track playback. -
trackEnd➡️(player, track, payload) => {}Triggered when a track finishes playing. -
queueEnd➡️(player, track, payload) => {}Triggered when the queue ends.
SponsorBlock Plugin Logs
Section titled “SponsorBlock Plugin Logs”Events from the SponsorBlock plugin: Only triggered when used with the Sponsorblock plugin
-
SegmentsLoaded➡️(player, track, payload) => {}Triggered when segments are loaded for a track. -
SegmentSkipped➡️(player, track, payload) => {}Triggered when a specific segment is skipped. -
ChapterStarted➡️(player, track, payload) => {}Triggered when a specific chapter starts playing. -
ChaptersLoaded➡️(player, track, payload) => {}Triggered when chapters are loaded for a track.
Lyrics Plugin Logs
Section titled “Lyrics Plugin Logs”Events from the LavaLyrics plugin: Only triggered when used with the latest snapshot of the lava-lyrics plugin
-
LyricsLine➡️(player, track, payload) => {}Triggered when a new lyrics line is received. -
LyricsFound➡️(player, track, payload) => {}Triggered when lyrics for a track are found. -
LyricsNotFound➡️(player, track, payload) => {}Triggered when lyrics for a track are not found.
Debug Logs
Section titled “Debug Logs”Internal debugging events from the Lavalink client: Only triggered when the
ManagerOptions#advancedOptions.enableDebugEventsis set totrue
debug➡️(eventKey, eventData) => {}Triggered for various debug logs and errors.
Examples
Section titled “Examples”import { DebugEvents } from "lavalink-client";
client.lavalink.on("create", (node, payload) => { console.log(`The Lavalink Node #${node.id} connected`);});
// For all node-based errors:client.lavalink.on("error", (node, error, payload) => { console.error(`The Lavalink Node #${node.id} errored: `, error); console.error(`Error Payload: `, payload);});
// YOU NEED TO HAVE THE debug EVENT ENABLED/*
client.lavalink = new LavalinkManager<myCustomPlayer>({ .... advancedOptions: { enableDebugEvents: true, // enable the DEBUG EVENT LISTENER debugOptions: { noAudio: true, // if set to true, you will get additional logs related to not hearing audio while playing on the first setup playerDestroy: { dontThrowError: false, debugLog: false, // if set to true, you will see additional debug logs related to destroying players }, logCustomSearches: false, // if set to true, you will see logs related to custom search plugins. } }});
*/client.lavalink.on("debug", (eventKey, eventData) => { // skip specific log if(eventKey === DebugEvents.NoAudioDebug && eventData.message === "Manager is not initated yet") return; // skip specific event log of a log-level-state "log" if(eventKey === DebugEvents.PlayerUpdateSuccess && eventData.state === "log") return; console.group("Lavalink-Client-Debug:"); console.log("-".repeat(20)); console.debug(`[${eventKey}]`); console.debug(eventData) console.log("-".repeat(20)); console.groupEnd();});