Skip to content

Lavalink.py 4.0.0

Compare
Choose a tag to compare
@devoxin devoxin released this 18 Aug 10:50
68ac818

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.