Events

class lava_lyra.events.FiltersChangedEvent(data: dict, player: Player)[source]

Bases: LyraEvent

Fired when player filters are changed (NodeLink specific)

filters: dict
name = 'filters_changed'
player: Player
class lava_lyra.events.LyraEvent[source]

Bases: ABC

The base class for all events dispatched by a node.

Every event must be formatted within your bot’s code as a listener. For example, to listen for when a track starts.

py-cord:

@bot.listen()
async def on_lyra_track_start(self, event):
    pass

discord.py:

@bot.event
async def on_lyra_track_start(event):
    pass
dispatch(bot: Bot) None[source]
handler_args: Tuple
name = 'event'
class lava_lyra.events.LyricsFoundEvent(data: dict, player: Player)[source]

Bases: LyraEvent

Event triggered when lyrics are found

lyrics: Lyrics
name = 'lyrics_found'
player: Player
track: Track | None
class lava_lyra.events.LyricsLineEvent(data: dict, player: Player)[source]

Bases: LyraEvent

Event triggered when lyrics move to a new line

line: LyricLine
name = 'lyrics_line'
player: Player
track: Track | None
class lava_lyra.events.LyricsNotFoundEvent(data: dict, player: Player)[source]

Bases: LyraEvent

Event triggered when lyrics are not found

name = 'lyrics_not_found'
player: Player
track: Track | None
class lava_lyra.events.MixEndedEvent(data: dict, player: Player)[source]

Bases: LyraEvent

Event fired when a mix layer ends (NodeLink specific)

This event is triggered when a mix layer stops playing, either because: - It finished playing naturally (FINISHED) - It was manually removed (REMOVED) - An error occurred (ERROR) - The main track ended (MAIN_ENDED)

Attributes:

player: The player instance mix_id: Unique identifier for this mix layer reason: Why the mix ended (see MixEndReason)

property is_error: bool

Check if mix ended due to error

property is_finished: bool

Check if mix ended naturally

property is_main_ended: bool

Check if mix ended because main track ended

property is_removed: bool

Check if mix was manually removed

mix_id: str
name = 'mix_ended'
player: Player
reason: str
class lava_lyra.events.MixStartedEvent(data: dict, player: Player)[source]

Bases: LyraEvent

Event fired when a mix layer starts (NodeLink specific)

A mix layer is an additional audio stream that plays alongside the main track. This is useful for features like: - Background music - Sound effects - Audio overlays - Multi-track playback

Attributes:

player: The player instance mix_id: Unique identifier for this mix layer track: The track being mixed in volume: Volume level of the mix layer (0.0 - 1.0)

mix_id: str
name = 'mix_started'
player: Player
track: Track | None
volume: float
class lava_lyra.events.NodeConnectedEvent(node_id: str, is_nodelink: bool, reconnect: bool = False)[source]

Bases: LyraEvent

Fired when a node successfully connects to Lavalink. Returns the node identifier and whether this is a reconnection.

name = 'node_connected'
node_id: str
reconnect: bool
class lava_lyra.events.NodeDisconnectedEvent(node_id: str, is_nodelink: bool, player_count: int)[source]

Bases: LyraEvent

Fired when a node disconnects from Lavalink. Returns the node identifier and the number of players that were affected.

name = 'node_disconnected'
node_id: str
player_count: int
class lava_lyra.events.NodeReconnectingEvent(node_id: str, is_nodelink: bool, retry_in: float)[source]

Bases: LyraEvent

Fired when a node is attempting to reconnect to Lavalink. Returns the node identifier and the retry delay in seconds.

name = 'node_reconnecting'
node_id: str
retry_in: float
class lava_lyra.events.PauseEvent(data: dict, player: Player)[source]

Bases: LyraEvent

Fired when player is paused (NodeLink specific)

name = 'pause'
paused: bool
player: Player
class lava_lyra.events.PlayerConnectedEvent(data: dict, player: Player)[source]

Bases: LyraEvent

Fired when a player connects to Discord voice (NodeLink specific)

name = 'player_connected'
player: Player
voice: dict
class lava_lyra.events.PlayerCreatedEvent(data: dict, player: Player)[source]

Bases: LyraEvent

Fired when a player is created (NodeLink specific)

guild_id: int
name = 'player_created'
player: Player
class lava_lyra.events.SeekEvent(data: dict, player: Player)[source]

Bases: LyraEvent

Fired when player seeks (NodeLink specific)

name = 'seek'
player: Player
position: int
class lava_lyra.events.TrackEndEvent(data: dict, player: Player)[source]

Bases: LyraEvent

Fired when a track has successfully ended. Returns the player associated with the event along with the lyra.Track object and reason.

name = 'track_end'
player: Player
reason: str
track: Track | None
class lava_lyra.events.TrackExceptionEvent(data: dict, player: Player)[source]

Bases: LyraEvent

Fired when a track error has occured. Returns the player associated with the event along with the error code and exception.

exception: str
name = 'track_exception'
player: Player
track: Track | None
class lava_lyra.events.TrackStartEvent(data: dict, player: Player)[source]

Bases: LyraEvent

Fired when a track has successfully started. Returns the player associated with the event and the lyra.Track object.

name = 'track_start'
player: Player
track: Track | None
class lava_lyra.events.TrackStuckEvent(data: dict, player: Player)[source]

Bases: LyraEvent

Fired when a track is stuck and cannot be played. Returns the player associated with the event along with the lyra.Track object to be further parsed by the end user.

name = 'track_stuck'
player: Player
threshold: float
track: Track | None
class lava_lyra.events.VolumeChangedEvent(data: dict, player: Player)[source]

Bases: LyraEvent

Fired when player volume is changed (NodeLink specific)

name = 'volume_changed'
player: Player
volume: int
class lava_lyra.events.WebSocketClosedEvent(data: dict, player: Any)[source]

Bases: LyraEvent

Fired when a websocket connection to a node has been closed. Returns the reason and the error code.

name = 'websocket_closed'
payload: WebSocketClosedPayload
class lava_lyra.events.WebSocketClosedPayload(data: dict, bot: Bot | None = None)[source]

Bases: object

by_remote: bool
code: int
property guild: Guild | None

Returns the guild associated with this event. Lazily fetches the guild to avoid circular imports.

reason: str
class lava_lyra.events.WebSocketOpenEvent(data: dict, _: Any)[source]

Bases: LyraEvent

Fired when a websocket connection to a node has been initiated. Returns the target and the session SSRC.

name = 'websocket_open'
ssrc: int
target: str