diff --git a/IMPLEMENTATION.md b/IMPLEMENTATION.md index 0d6dd9e50..6574137b3 100644 --- a/IMPLEMENTATION.md +++ b/IMPLEMENTATION.md @@ -12,10 +12,12 @@ The Java client has support for JDA, but can also be adapted to work with other * Hixie 76 * Hixie 75 -## Breaking changes v2.0 -> v3.0 -The response of `/loadtracks` has been completely changed. +## Significant changes v2.0 -> v3.0 +* The response of `/loadtracks` has been completely changed. +* Lavalink v3.0 now reports its version as a handshake response header. +`Lavalink-Major-Version` has a value of `3` for v3.0 only. It's missing for any older version. -## Breaking changes v1.3 -> v2.0 +## Significant changes v1.3 -> v2.0 With the release of v2.0 many unnecessary ops were removed: * `connect` diff --git a/LavalinkServer/src/main/java/lavalink/server/config/SentryConfiguration.java b/LavalinkServer/src/main/java/lavalink/server/config/SentryConfiguration.java index e4f1ad48a..51cae187c 100644 --- a/LavalinkServer/src/main/java/lavalink/server/config/SentryConfiguration.java +++ b/LavalinkServer/src/main/java/lavalink/server/config/SentryConfiguration.java @@ -18,7 +18,9 @@ /** * Created by napster on 25.04.18. */ + @Configuration +@SuppressWarnings("WeakerAccess") public class SentryConfiguration { private static final Logger log = LoggerFactory.getLogger(SentryConfiguration.class); diff --git a/LavalinkServer/src/main/java/lavalink/server/io/SocketServer.java b/LavalinkServer/src/main/java/lavalink/server/io/SocketServer.java index f05216948..e22c0849a 100644 --- a/LavalinkServer/src/main/java/lavalink/server/io/SocketServer.java +++ b/LavalinkServer/src/main/java/lavalink/server/io/SocketServer.java @@ -34,7 +34,10 @@ import net.dv8tion.jda.Core; import net.dv8tion.jda.manager.AudioManager; import org.java_websocket.WebSocket; +import org.java_websocket.drafts.Draft; +import org.java_websocket.exceptions.InvalidDataException; import org.java_websocket.handshake.ClientHandshake; +import org.java_websocket.handshake.ServerHandshakeBuilder; import org.java_websocket.server.WebSocketServer; import org.json.JSONObject; import org.slf4j.Logger; @@ -76,6 +79,13 @@ public void start() { super.start(); } + @Override + public ServerHandshakeBuilder onWebsocketHandshakeReceivedAsServer(WebSocket conn, Draft draft, ClientHandshake request) throws InvalidDataException { + ServerHandshakeBuilder builder = super.onWebsocketHandshakeReceivedAsServer(conn, draft, request); + builder.put("Lavalink-Major-Version", "3"); + return builder; + } + @Override public void onOpen(WebSocket webSocket, ClientHandshake clientHandshake) { try { diff --git a/README.md b/README.md index 941ad1061..ce01cad84 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ Being used in production by FredBoat, Dyno, Rythm, LewdBot, and more. ## Client libraries: ### Supports 3.x and older: * [JDA client](https://github.com/Frederikam/Lavalink/tree/master/LavalinkClient) (JDA or generic, Java) -* [LavaClient](https://github.com/SamOphis/LavaClient/tree/lavalink-v3) (Java) +* [LavaClient](https://github.com/SamOphis/LavaClient) (Java) * [Lavalink.py](https://github.com/Devoxin/Lavalink.py) (discord.py, Python) * [SandySounds](https://github.com/MrJohnCoder/SandySounds) (JavaScript)