Skip to content

Commit 27d9668

Browse files
committed
Disconnect player on websocket close event
1 parent 226d8c8 commit 27d9668

File tree

3 files changed

+14
-1
lines changed

3 files changed

+14
-1
lines changed

src/main/kotlin/dev/arbjerg/lavalink/internal/LavalinkSocket.kt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,19 @@ class LavalinkSocket(private val node: LavalinkNode) : WebSocketListener(), Clos
8888
is Message.EmittedEvent.TrackEndEvent -> {
8989
node.getCachedPlayer(event.guildId.toLong())?.track = null
9090
}
91+
is Message.EmittedEvent.WebSocketClosedEvent -> {
92+
// These codes represent an invalid session
93+
// See https://discord.com/developers/docs/topics/opcodes-and-status-codes#voice-voice-close-event-codes
94+
95+
if (event.code == 4004 || event.code == 4006 || event.code == 4009 || event.code == 4014) {
96+
logger.debug("Node '{}' received close code {} for guild {}", node.name, event.code, event.guildId)
97+
// TODO: auto-reconnect?
98+
node.destroyPlayer(event.guildId.toLong()).subscribe()
99+
}
100+
}
91101
else -> {}
92102
}
93103

94-
// TODO: handle websocket closed event from discord?
95104
node.penalties.handleTrackEvent(event)
96105
}
97106

testbot/src/main/java/me/duncte123/testbot/JDAListener.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ public void onSlashCommandInteraction(@NotNull SlashCommandInteractionEvent even
9797
.build()
9898
)
9999
.subscribe();
100+
event.reply("turning karaoke on!").queue();
100101
break;
101102
}
102103
case "karaoke off": {
@@ -111,6 +112,7 @@ public void onSlashCommandInteraction(@NotNull SlashCommandInteractionEvent even
111112
.build()
112113
)
113114
.subscribe();
115+
event.reply("turning karaoke off!").queue();
114116
break;
115117
}
116118
case "play": {

testbot/src/main/resources/logback.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
</encoder>
77
</appender>
88

9+
<logger name="dev.arbjerg.lavalink" level="DEBUG" />
10+
911
<root level="info">
1012
<appender-ref ref="STDOUT" />
1113
</root>

0 commit comments

Comments
 (0)