Skip to content

Releases: devoxin/Lavalink.py

Lavalink.py 4.0.0

18 Aug 10:50
68ac818
Compare
Choose a tag to compare

Non-exhaustive list of changes:

Additions

  • Lavalink filters support.
  • Support Java's modified utf by including a dedicated utfm codec.
    • This should provide fewer erroneous decodes, as well as displaying previously-unsupported characters.
  • Support Lavalink's new exception format (#105, contributors: @apex2504).
  • Utils.timestamp_to_mills helper function.
  • PlayerUpdateEvent.connected.
  • Custom source support + DeferredAudioTrack.
  • player.destroy.
  • Support for volume and pause kwargs in play().
  • @lavalink.listener decorator.
  • ssl support for nodes (wss/https).
  • /plugins route support (#124, contributors: @apex2504).
  • node_unavailable() method added to BasePlayer.
  • Docstrings.

Changes

  • user_id now accepts int or str.
  • HTTP-based functions now raise appropriate errors rather than returning false/misleading values.
  • Renamed lavalink.exceptions to lavalink.errors to be more inline with Error naming.
  • Websocket closures now have a default error messages.
  • Websocket closures now better attempts to extract the close code.
  • ConnectionResetError should be better handled.
  • Updated a few logging messages to better show which module emitted the log.
  • position and encoder_version properties are now exposed in decoded AudioTracks.
  • Documented player.channel_id.
  • player.guild_id is now an int.
  • TrackEndEvent.track is now marked Optional to cover any potential scenarios where track decoding fails.
  • Marked set_gain, set_gains, and reset_equalizer as deprecated.
    • Their equivalents are listed in the docs, so endeavour to change this as they will probably be removed on the next minor/major version.
  • player.add parameter has been re-ordered to be more logical.
  • The behaviour of the requester param in player.add has been altered so that non-zero values now overwrite the track's requester.
  • get_tracks now returns a LoadResult class rather than the raw JSON (dict).
    • Best effort was made to ensure this was backwards compatible, however it's marked as breaking as it's a large change, so you should verify you're unaffected.
  • AudioTrack supports construction from another AudioTrack instance.
  • Docstrings.

Fixes

  • Lavalink.py client will no longer dispatch to empty hooks.
  • Altered how Lavalink's TrackStartEvent is processed internally to avoid emitting NoneType events.
  • Docstrings.

Notes

  • Any non-essential functions (basically routeplanner_* functions in Client) have been moved to Node. They didn't make sense as they required a Node instance, so it seemed more logical to incorporate them directly into the Node instance itself.
  • Refactored logging formats.

Lavalink.py 2.1.10

02 Oct 19:38
Compare
Choose a tag to compare

Changes in this version

  • Stats events are now handled within Lavalink.py
    • A stats event is now dispatched when received from the server
  • Lavalink.py now detects server version and adjusts some stuff internally to match
  • DefaultPlayer's play function now accepts some additional parameters
    • ignore_shuffle, index
  • DefaultPlayer has some additional helper functions regarding playing and queueing
    • play_at, play_now, play_previous, add_at, add_next
  • Track hooks can now be a normal function
  • Numerous code improvements + docstrings which your editor might thank you for

Lavalink.py 2.1.9

18 Jul 19:32
Compare
Choose a tag to compare
  • Add connected property to WebSocket
  • Encode query in get_tracks to resolve issues with playlist/mix loading
  • Remove async keyword from cleanup function

Lavalink.py 2.1.8

16 Jul 14:33
Compare
Choose a tag to compare
  • Cleanup doesn't need to be an abstract method

Lavalink.py 2.1.7

16 Jul 14:18
Compare
Choose a tag to compare
  • Exceptions caused by track hooks are now caught and logged rather than stopping the event dispatching completely
  • Players can now be removed from cache by calling PlayerManager#remove. Method takes a single parameter consisting of a guild_id
  • BasePlayer now has a cleanup method that can be used to clean up any leftover objects on custom player implementations. The method is only called when a player is removed from cache
  • Retrieving position from lavalink playerUpdate JSON should no longer throw under some circumstances
  • _attempt_reconnect method should now be compatible with AutoShardedClient

Lavalink.py 2.1.6

17 Jun 11:08
Compare
Choose a tag to compare
  • Experimental fix regarding WS not sending after a while
  • Stringify User Id when attempting to connect

Lavalink.py 2.1.5

01 Apr 23:44
Compare
Choose a tag to compare
  • Fixes TrackStuckEvent not being defined

Lavalink.py 2.1.4

24 Mar 15:41
Compare
Choose a tag to compare

Fixes issues with players not handling TrackStuckEvents

Lavalink.py 2.1.3

24 Mar 13:09
Compare
Choose a tag to compare

This fixes some more issues regarding logging that are noticeable when using loglevel.DEBUG

Lavalink.py 2.1.2

24 Mar 12:58
Compare
Choose a tag to compare

This adds additional logging to event dispatching