Each release usually includes various fixes and improvements. The most noteworthy of these, as well as any features and breaking changes, are listed here.
- Updated koe to
2.0.3-rc2
& use voice gatewayv8
in #1097 - Updated Lavaplayer to
2.2.2
in #1105 - Allow usage of non-allocating frame buffers in #1095
- Added shutdown handling to close sessions cleanly in #1102
- Updated Lavaplayer to
2.2.1
- Updated spring-boot to
3.3.0
& spring-websocket to6.1.9
- Updated kotlin to
2.0.0
& kotlinx-serialization-json to1.7.0
- Updated logback to
1.5.6
& sentry-logback to7.10.0
- Updated Lavaplayer to
2.1.2
- Updated Koe to
2.0.1
(fixes theIndexOutOfBoundsException
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.
- Updated Lavaplayer to
2.1.1
- 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
)
- 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
- 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
- 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 ofResume-Key
header - Add JDA-NAS support for musl (
x86-64
,aarch64
) based systems (most notablyalpine
) - Add
Omissible#isPresent
&Omissible#isOmitted
to theprotocol
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
- 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
- Update lavaplayer to
2.0.2
- Support MPEG 2.5 and fixed some requests not timing out - Add
Omissible#isPresent
&Omissible#isOmitted
to theprotocol
module - Fix null pointer when a playlist has no selected track
- Update lavaplayer to
2.0.0
- Fixed YouTube 403 errors & YouTube access token errors
- Update lavaplayer to
08cfbc0
- Fixed ogg streaming - Add JDA-NAS support for musl (
x86-64
,aarch64
) based systems (most notablyalpine
) - New config option to specify the directory to load plugins from.
lavalink.pluginsDir
(defaults to./plugins
)
- 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 ofResume-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
- Updated Lavaplayer to
1.5.4
- Updated Koe to
2.0.1
(fixes theIndexOutOfBoundsException
when playing a YouTube track)
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.
- Fixed not being able to seek when player is paused
- Update Oshi to
6.4.3
- Update Lavaplayer to
1.5.3
- Update lavaplayer to
1.5.2
- Fixed NPE on missing author in playlist tracks in YouTube
- Update lavaplayer to
1.5.1
- Fixed YouTube access token errors - Fixed websocket crash when seeking and nothing is playing
- Fixed error when seeking and player is not playing anything
- Fix YouTube 403 errors
- Fix YouTube access token errors
- Add JDA-NAS support for musl (
x86-64
,aarch64
) based systems (most notablyalpine
)
- Update Lavaplayer to
1.4.1
&1.4.2
- New support for
MUSL
based systems (most notablyalpine
) - New
alpine
docker image variant (use-alpine
suffix)
- Fix
endTime
inPlayer Update
endpoint only applying when playing a new track - Fix errors when doing multiple session resumes
- Update lavaplayer to
1.4.0
see here for more info
Note Lavalink Docker images are now found in the GitHub Container Registry instead of DockerHub
- Fix an issue where Lavalink would not destroy a session when a client disconnects
- Fix breaking change where
/decodetrack
would return a full track instead of the track info
- Fix breaking change where frameStats would be null instead of omitted
- Revert of application.yml autocreate as it can cause issues with differently named configs
- New REST API for player control and deprecation of all websocket OPs. For more info see here
- Autocreate default
application.yml
if none was found. #781 - New config option to disable jda nas. #780
- New config option to disable specific filters. #779
- Update lavaplayer to
1.3.99.2
. #794 - Update udpqueue.rs to
v0.2.6
. #802
Contributors: @topi314, @Devoxin, @melike2d, @freyacodes, @aikaterna, @ooliver1
- Update lavaplayer to
1.3.99.1
. For more info see here
- Update lavaplayer to
1.3.99
. For more info see here
- New userId & clientName getters in the plugin-api. For more info see here.
Contributors: @melike2d
- Update udpqueue.rs to
0.2.5
which fixes crashes when ipv6 is disabled - Fix null socketContext in
IPlayer
for plugins - New
ping
field in player update. see #738 for more info
Contributors: @topi314, @Devoxin, and @freyacodes
- New plugin system. For more info see here.
- Add support for HTTP proxying via httpConfig. For more info see here.
- Update koe version to 2.0.0-rc1.
- this fixes the WebSocketClosedEvent with code 1006 problem.
- Fix error when enabling timescale and lowpass filters.
- Fix player not playing after moving between voice chats or changing regions.
- Fix guild ids sent as numbers in json.
- Fix missing timescale natives.
- Fix setting endMarkerHit to correctly set FINISHED as the reason.
- Undeprecation of the
volume
property in theplay
OP. - Configurable track stuck threshold. For more info see here.
- Add JDA-NAS support for more CPU Architectures. For more info see here. Big thanks goes to @MinnDevelopment here.
- Update lavaplayer to
1.3.98.4
which fixes the latest yt cipher issues and age restricted tracks
Contributors: @freyacodes, @davidffa, @Walkyst, @topi314, @duncte123, @Kodehawa, @Devoxin, @Muh9049, @melike2d, @ToxicMushroom, @mooner1022, @rohank05, @Fabricio20, @TheEssemm, and @jack1142
- New filters system
- Deprecation of
TrackExceptionEvent.error
, replaced byTrackExceptionEvent.exception
- Added the
connected
boolean to player updates. - Updated lavaplayer, fixes Soundcloud
- Added source name to REST api track objects
- Clients are now requested to make their name known during handshake
Contributors: @freyacodes, @duncte123, @DaliborTrampota, @Mandruyd, @Allvaa, and @topi314
- Update Lavaplayer to 1.3.76
- Update Lavaplayer to 1.3.74
- Update Lavaplayer to 1.3.65, fixes Soundcloud
- Updated Lavaplayer to 1.3.61
- Fixed a ConcurrentModificationException (Thewsomeguy)
- Updated to Sedmelluq's Lavaplayer 1.3.53
- Replaced Magma with Koe.
- Finally implemented
stopTime
forplay
op. - Added
playerUpdateInterval
config option. - Added
environment
to Sentry config. - Fixed #332
- Updated IP rotator.
- Update lavaplayer to
1.3.59
from devoxin's fork. - Added a Testbot for development.
Contributors: @freyacodes, @Thewsomeguy, @Neuheit, @Sangoon_Is_Noob, @TheEssem, and @Devoxin
- Update lavaplayer to
1.3.54.3
from devoxin's fork.
- Update lavaplayer to
1.3.53
from devoxin's fork.
- Update lavaplayer to @Devoxin's' fork
- Updated Lavaplayer to
1.3.50
. This notably fixes YouTube search.
Search patch contributed by @freyacodes
- Update Magma and Lavaplayer.
- Added TrackStartEvent event.
- Added retryLimit configuration option.
- Use a single AudioPlayerManager for all WS connections, reducing overhead.
- Docker images now use Zulu JDK 13 to mitigate TLS 1.3 problems.
Contributors: @freyacodes, @duncte123, @ByteAlex, and @Xavinlol
Officially limit Lavalink to JRE 11 and up. Magma has long been having issues with older versions.
- IP rotation system for getting around certain ratelimits.
- Update Lavaplayer to 1.3.32.
- Docker container now uses a non-root user.
Contributors: @freyacodes, @ByteAlex, @duncte123, and @james7132
- Updated Lavaplayer to 1.3.19. This release includes a patch which fixes loading youtube URLs. sedmelluq/lavaplayer#199
- Made the WebSocket handshake return code 401 instead of 200 on bad auth. #208
Contributors: @freyacodes and @Devoxin
- Update dependencies -- fixes frequent youtube HTTP errors
- Return
FriendlyException
message onLOAD_FAILED
#174 - Add option to disable
ytsearch
andscsearch
#194
Contributors: @Devoxin, @duncte123, @freyacodes, and @napstr
- Add compatibility for Java 8-10
Contributor: @MinnDevelopment
- Patched magma
Contributor: @freyacodes
- Bumped to Java 11. Treating this as a patch version, as v3.2 still requires Java 11 due to a Magma update.
- Added support for resuming
- Added noReplace option to the play op
- Sending the same voice server update will not cause an existing connection to reconnect
Contributor: @freyacodes
- Add API version header to all responses
Contributor: @Devoxin
- Add equalizer support
- Update lavaplayer to 1.3.10
- Fixed automatic versioning
- Added build config to upload binaries to GitHub releases from CI
Contributors: @Devoxin, @freyacodes, @calebj
- Replaced JDAA with Magma
- Added an event for when the Discord voice WebSocket is closed
- Replaced Tomcat and Java_Websocket with Undertow. WS and REST is now handled by the same
server and port. Port is specified by
server.port
.
- Breaking: The minimum required Java version to run the server is now Java 10.
Please note: Java 10 will be obsolete as of September 2018 with the release of Java 11. Expect a Lavalink major version release that will be targetting Java 11 by that time. - Breaking: Changes to the output of the /loadtracks endpoint. #91, #114, #116
- Breaking: The Java client has been moved to a new repository.
- Breaking: The Java client has been made generic. This is a breaking change so please read the migration guide.
- Better configurable logging. #97
- Add custom sentry tags, change sentry dsn configuration location. #103
- Add Lavalink version header to websocket handshake. #111
- Use git tags for easier version visibility. #129
Contributors: @Devoxin, @freyacodes, @napstr, @SamOphis
- Lavaplayer updated to 1.3.x #115
- Version command line flag #121
- Fix race condition in
/loadtracks
endpoint leading to some requests never completing #125
Contributors: @Devoxin, @freyacodes, @napstr
Contributors: @freyacodes, @napstr, @Repulser
- Configurable playlist load limit #60
- Docker Releases, #74
Contributors: @Devoxin, @freyacodes, @itslukej, @napstr, @Repulser