Skip to content

Commit

Permalink
Disconnect player on websocket close event
Browse files Browse the repository at this point in the history
  • Loading branch information
duncte123 committed Jan 22, 2024
1 parent 226d8c8 commit 27d9668
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 1 deletion.
11 changes: 10 additions & 1 deletion src/main/kotlin/dev/arbjerg/lavalink/internal/LavalinkSocket.kt
Original file line number Diff line number Diff line change
Expand Up @@ -88,10 +88,19 @@ class LavalinkSocket(private val node: LavalinkNode) : WebSocketListener(), Clos
is Message.EmittedEvent.TrackEndEvent -> {
node.getCachedPlayer(event.guildId.toLong())?.track = null
}
is Message.EmittedEvent.WebSocketClosedEvent -> {
// These codes represent an invalid session
// See https://discord.com/developers/docs/topics/opcodes-and-status-codes#voice-voice-close-event-codes

if (event.code == 4004 || event.code == 4006 || event.code == 4009 || event.code == 4014) {
logger.debug("Node '{}' received close code {} for guild {}", node.name, event.code, event.guildId)
// TODO: auto-reconnect?
node.destroyPlayer(event.guildId.toLong()).subscribe()
}
}
else -> {}
}

// TODO: handle websocket closed event from discord?
node.penalties.handleTrackEvent(event)
}

Expand Down
2 changes: 2 additions & 0 deletions testbot/src/main/java/me/duncte123/testbot/JDAListener.java
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ public void onSlashCommandInteraction(@NotNull SlashCommandInteractionEvent even
.build()
)
.subscribe();
event.reply("turning karaoke on!").queue();
break;
}
case "karaoke off": {
Expand All @@ -111,6 +112,7 @@ public void onSlashCommandInteraction(@NotNull SlashCommandInteractionEvent even
.build()
)
.subscribe();
event.reply("turning karaoke off!").queue();
break;
}
case "play": {
Expand Down
2 changes: 2 additions & 0 deletions testbot/src/main/resources/logback.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
</encoder>
</appender>

<logger name="dev.arbjerg.lavalink" level="DEBUG" />

<root level="info">
<appender-ref ref="STDOUT" />
</root>
Expand Down

0 comments on commit 27d9668

Please sign in to comment.