Releases: devoxin/Lavalink.py
Releases · devoxin/Lavalink.py
Lavalink.py 4.0.0
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
andpause
kwargs inplay()
. @lavalink.listener
decorator.- ssl support for nodes (wss/https).
/plugins
route support (#124, contributors: @apex2504).node_unavailable()
method added toBasePlayer
.- Docstrings.
Changes
user_id
now acceptsint
orstr
.- HTTP-based functions now raise appropriate errors rather than returning false/misleading values.
- Renamed
lavalink.exceptions
tolavalink.errors
to be more inline withError
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
andencoder_version
properties are now exposed in decoded AudioTracks.- Documented
player.channel_id
. player.guild_id
is now anint
.TrackEndEvent.track
is now markedOptional
to cover any potential scenarios where track decoding fails.- Marked
set_gain
,set_gains
, andreset_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 inplayer.add
has been altered so that non-zero values now overwrite the track's requester. get_tracks
now returns aLoadResult
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 anotherAudioTrack
instance.- Docstrings.
Fixes
- Lavalink.py client will no longer dispatch to empty hooks.
- Altered how Lavalink's
TrackStartEvent
is processed internally to avoid emittingNoneType
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
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
'splay
function now accepts some additional parametersignore_shuffle
,index
DefaultPlayer
has some additional helper functions regarding playing and queueingplay_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
- 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
- Cleanup doesn't need to be an abstract method
Lavalink.py 2.1.7
- 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 lavalinkplayerUpdate
JSON should no longer throw under some circumstances _attempt_reconnect
method should now be compatible with AutoShardedClient
Lavalink.py 2.1.6
- Experimental fix regarding WS not sending after a while
- Stringify User Id when attempting to connect
Lavalink.py 2.1.5
- Fixes TrackStuckEvent not being defined
Lavalink.py 2.1.4
Fixes issues with players not handling TrackStuckEvents
Lavalink.py 2.1.3
This fixes some more issues regarding logging that are noticeable when using loglevel.DEBUG
Lavalink.py 2.1.2
This adds additional logging to event dispatching