@@ -3,6 +3,7 @@ package dev.arbjerg.lavalink.client
33import dev.arbjerg.lavalink.client.player.LavalinkPlayer
44import dev.arbjerg.lavalink.client.player.PlayerUpdateBuilder
55import dev.arbjerg.lavalink.protocol.v4.VoiceState
6+ import org.slf4j.LoggerFactory
67import java.time.Duration
78import java.util.function.Consumer
89
@@ -15,6 +16,8 @@ class Link(
1516 val guildId : Long ,
1617 node : LavalinkNode
1718) {
19+ private var logger = LoggerFactory .getLogger(Link ::class .java)
20+
1821 var node = node
1922 private set
2023
@@ -58,11 +61,15 @@ class Link(
5861 val player = node.getCachedPlayer(guildId)
5962
6063 if (player != null ) {
61- node.removeCachedPlayer(guildId)
6264 newNode.createOrUpdatePlayer(guildId)
6365 .applyBuilder(player.stateToBuilder())
6466 .delaySubscription(delay)
65- .subscribe()
67+ .subscribe({
68+ node.removeCachedPlayer(guildId)
69+ }) {
70+ state = LinkState .DISCONNECTED
71+ logger.error(" Failed to transfer player to new node: ${newNode.name} " , it)
72+ }
6673 }
6774
6875 node = newNode
@@ -73,7 +80,10 @@ class Link(
7380 state = LinkState .CONNECTING
7481 node.createOrUpdatePlayer(guildId)
7582 .setVoiceState(newVoiceState)
76- .subscribe()
83+ .subscribe(null ) {
84+ state = LinkState .DISCONNECTED
85+ logger.error(" Failed to update voice state to $newVoiceState " , it)
86+ }
7787 }
7888 }
7989
0 commit comments