@@ -3,6 +3,7 @@ package dev.arbjerg.lavalink.client
3
3
import dev.arbjerg.lavalink.client.player.LavalinkPlayer
4
4
import dev.arbjerg.lavalink.client.player.PlayerUpdateBuilder
5
5
import dev.arbjerg.lavalink.protocol.v4.VoiceState
6
+ import org.slf4j.LoggerFactory
6
7
import java.time.Duration
7
8
import java.util.function.Consumer
8
9
@@ -15,6 +16,8 @@ class Link(
15
16
val guildId : Long ,
16
17
node : LavalinkNode
17
18
) {
19
+ private var logger = LoggerFactory .getLogger(Link ::class .java)
20
+
18
21
var node = node
19
22
private set
20
23
@@ -58,11 +61,15 @@ class Link(
58
61
val player = node.getCachedPlayer(guildId)
59
62
60
63
if (player != null ) {
61
- node.removeCachedPlayer(guildId)
62
64
newNode.createOrUpdatePlayer(guildId)
63
65
.applyBuilder(player.stateToBuilder())
64
66
.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
+ }
66
73
}
67
74
68
75
node = newNode
@@ -73,7 +80,10 @@ class Link(
73
80
state = LinkState .CONNECTING
74
81
node.createOrUpdatePlayer(guildId)
75
82
.setVoiceState(newVoiceState)
76
- .subscribe()
83
+ .subscribe(null ) {
84
+ state = LinkState .DISCONNECTED
85
+ logger.error(" Failed to update voice state to $newVoiceState " , it)
86
+ }
77
87
}
78
88
}
79
89
0 commit comments