Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,9 @@ import java.util.concurrent.TimeUnit

/**
* @param userId ID of the bot for authenticating with Discord
* @param clientName Name of the client, used for connecting to the Lavalink node(s)
*/
class LavalinkClient(val userId: Long) : Closeable, Disposable {
class LavalinkClient(val userId: Long, var clientName: String?) : Closeable, Disposable {
private val internalNodes = CopyOnWriteArrayList<LavalinkNode>()
private val linkMap = ConcurrentHashMap<Long, Link>()
private var clientOpen = true
Expand Down Expand Up @@ -48,6 +49,11 @@ class LavalinkClient(val userId: Long) : Closeable, Disposable {
Thread(it, "lavalink-reconnect-thread").apply { isDaemon = true }
}

/**
* @param userId ID of the bot for authenticating with Discord
*/
constructor(userId: Long) : this(userId, null)

init {
reconnectService.scheduleWithFixedDelay(ReconnectTask(this), 0, 500, TimeUnit.MILLISECONDS)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ class LavalinkNode(
private val reference: Disposable = flux.subscribe()

internal val rest = LavalinkRestClient(this)
val ws = LavalinkSocket(this)
val ws = LavalinkSocket(this, lavalink.clientName)

// Stuff for load balancing
val penalties = Penalties(this)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ import java.net.ConnectException
import java.net.SocketException
import java.net.SocketTimeoutException

class LavalinkSocket(private val node: LavalinkNode) : WebSocketListener(), Closeable {
class LavalinkSocket(private val node: LavalinkNode, private val clientName: String?) : WebSocketListener(), Closeable {

private val logger = LoggerFactory.getLogger(LavalinkSocket::class.java)

internal var socket: WebSocket? = null
Expand Down Expand Up @@ -221,7 +222,7 @@ class LavalinkSocket(private val node: LavalinkNode) : WebSocketListener(), Clos
val request = Request.Builder()
.url("${node.baseUri}/v4/websocket")
.addHeader("Authorization", node.password)
.addHeader("Client-Name", "Lavalink-Client/${CLIENT_VERSION}")
.addHeader("Client-Name", clientName ?: "Lavalink-Client/${CLIENT_VERSION}")
.addHeader("User-Id", node.lavalink.userId.toString())
.apply {
if (node.sessionId != null) {
Expand Down
2 changes: 1 addition & 1 deletion testbot/src/main/java/me/duncte123/testbot/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public class Main {

public static void main(String[] args) throws InterruptedException {
final var token = System.getenv("BOT_TOKEN");
final LavalinkClient client = new LavalinkClient(Helpers.getUserIdFromToken(token));
final LavalinkClient client = new LavalinkClient(Helpers.getUserIdFromToken(token), "TestBot");

client.getLoadBalancer().addPenaltyProvider(new VoiceRegionPenaltyProvider());

Expand Down