Skip to content

v4

v4.0.5

  • Updated Lavaplayer to 2.1.2
  • Updated Koe to 2.0.1 (fixes the IndexOutOfBoundsException when playing a YouTube track)
  • Added option to enable Nico source
  • Expose Lavalink sessions to plugins via the ISocketServer interface

Warning

The default Youtube source is now deprecated and won't receive further updates. Please use https://github.com/lavalink-devs/youtube-source#plugin instead.

v4.0.4

  • Updated Lavaplayer to 2.1.1

v4.0.3

  • Fixed plugins not registering (introduced in 4.0.2)
  • Fixed some issues where plugins would be redownloaded everytime lavalink started (introduced in 4.0.1)

v4.0.2

  • Fixed issue where all plugins get deleted when already present (introduced in v4.0.1)
  • Always include plugin info & user data when serializing (introduced in v4.0.1)
  • Updated oshi to 6.4.11

v4.0.1

  • Updated Lavaplayer to 2.1.0
  • Updated oshi to 6.4.8
  • Fix/user data missing field exception in protocol
  • Fix plugin manager not deleting old plugin version
  • Fix not being able to seek when player is paused
  • Removed illegal reflection notice

v4.0.0

  • Lavalink now requires Java 17 or higher to run
  • Removal of all websocket messages sent by the client. Everything is now done via REST
  • Remove default 4GB max heap allocation from docker image
  • Removal of all /v3 endpoints except /version. All other endpoints are now under /v4
  • Reworked track loading result. For more info see here
  • Update docker ubuntu base image from focal(20) to jammy(22)
  • Update to Koe 2.0.0-rc2
  • Update Lavaplayer to 2.0.4, which includes native support for artwork urls and ISRCs in the track info
  • Update to the Protocol Module to support Kotlin/JS
  • Allow setting user data on tracks in the REST API. For more info see here
  • Added default plugin repository. Plugin devs can now request their plugin to be added to the default repository. For more info see here
  • Addition of full Track objects in following events: TrackStartEvent, TrackEndEvent, TrackExceptionEvent, TrackStuckEvent
  • Resuming a session now requires the Session-Id header instead of Resume-Key header
  • Add JDA-NAS support for musl (x86-64, aarch64) based systems (most notably alpine)
  • Add Omissible#isPresent & Omissible#isOmitted to the protocol module
  • New config option to specify the directory to load plugins from. lavalink.pluginsDir (defaults to ./plugins)
  • Enable request logging by default
  • Fixed error when seeking and player is not playing anything in
  • Fixed null pointer when a playlist has no selected track

Warning

Lavalink previously set the -Xmx flag to 4G in docker. This caused issues with some systems which had less than 4GB of RAM. We have now removed this flag and let the JVM decide the max heap allocation. The default is 1GB or 25% of total memory, whichever is lower. On how to increase the max heap allocation, see here.

v4.0.0 - Betas

v4.0.0-beta.5

  • Update lavaplayer to 2.0.3 - Fixed YouTube access token errors
  • Added default plugin repository. Plugin devs can now request their plugin to be added to the default repository. For more info see here
  • Fixed error when seeking and player is not playing anything in

v4.0.0-beta.4

  • Update lavaplayer to 2.0.2 - Support MPEG 2.5 and fixed some requests not timing out
  • Add Omissible#isPresent & Omissible#isOmitted to the protocol module
  • Fix null pointer when a playlist has no selected track

v4.0.0-beta.3

  • Update lavaplayer to 2.0.0 - Fixed YouTube 403 errors & YouTube access token errors

v4.0.0-beta.2

  • Update lavaplayer to 08cfbc0 - Fixed ogg streaming
  • Add JDA-NAS support for musl (x86-64, aarch64) based systems (most notably alpine)
  • New config option to specify the directory to load plugins from. lavalink.pluginsDir (defaults to ./plugins)

v4.0.0-beta.1

  • New Lavalink now requires Java 17 or higher to run
  • Removal of all websocket messages sent by the client. Everything is now done via REST
  • Update to Lavaplayer custom branch, which includes native support for artwork urls and ISRCs in the track info
  • Addition of full Track objects in following events: TrackStartEvent, TrackEndEvent, TrackExceptionEvent, TrackStuckEvent
  • Resuming a session now requires the Session-Id header instead of Resume-Key header
  • Reworked track loading result. For more info see here
  • Update to the Protocol Module to support Kotlin/JS
  • Removal of all /v3 endpoints except /version. All other endpoints are now under /v4

Warning

This is a beta release, and as such, may contain bugs. Please report any bugs you find to the issue tracker. For more info on the changes in this release, see here If you have any question regarding the changes in this release, please ask in the support server or GitHub discussions

Contributors: @topi314, @freyacodes, @DRSchlaubi and @melike2d