diff --git a/src/main/kotlin/dev/arbjerg/lavalink/client/LavalinkNode.kt b/src/main/kotlin/dev/arbjerg/lavalink/client/LavalinkNode.kt index 1c3ffe3..c76e2ee 100644 --- a/src/main/kotlin/dev/arbjerg/lavalink/client/LavalinkNode.kt +++ b/src/main/kotlin/dev/arbjerg/lavalink/client/LavalinkNode.kt @@ -158,12 +158,18 @@ class LavalinkNode( */ fun createOrUpdatePlayer(guildId: Long) = PlayerUpdateBuilder(this, guildId) + @Deprecated( + message = "Doesn't just destroy the player anymore, use destroyPlayerAndLink() instead.", + replaceWith = ReplaceWith("destroyPlayerAndLink(guildId)") + ) + fun destroyPlayer(guildId: Long) = destroyPlayerAndLink(guildId) + /** - * Destroy a guild's player. This will also remove the associated link from the client. + * Destroy a guild's player and remove it from the cache. This will also remove the associated link from the client. * - * @param guildId The guild id of the player to destroy. + * @param guildId The guild id of the player AND link to destroy. */ - fun destroyPlayer(guildId: Long): Mono { + fun destroyPlayerAndLink(guildId: Long): Mono { if (!available) return Mono.error(IllegalStateException("Node is not available")) return rest.destroyPlayer(guildId) diff --git a/src/main/kotlin/dev/arbjerg/lavalink/client/Link.kt b/src/main/kotlin/dev/arbjerg/lavalink/client/Link.kt index 1057c25..3d7e7b5 100644 --- a/src/main/kotlin/dev/arbjerg/lavalink/client/Link.kt +++ b/src/main/kotlin/dev/arbjerg/lavalink/client/Link.kt @@ -35,7 +35,16 @@ class Link( /** * Destroys the player for this link. This will also remove the link from the client. */ - fun destroyPlayer() = node.destroyPlayer(guildId) + @Deprecated( + message = "Doesn't just destroy the player anymore, use destroy() instead.", + replaceWith = ReplaceWith("destroy()") + ) + fun destroyPlayer() = node.destroyPlayerAndLink(guildId) + + /** + * Destroys this link, disconnecting the bot in the process. + */ + fun destroy() = node.destroyPlayerAndLink(guildId) fun updatePlayer(updateConsumer: Consumer) = node.updatePlayer(guildId, updateConsumer) diff --git a/src/main/kotlin/dev/arbjerg/lavalink/internal/LavalinkSocket.kt b/src/main/kotlin/dev/arbjerg/lavalink/internal/LavalinkSocket.kt index cd5aa58..d12a0c5 100644 --- a/src/main/kotlin/dev/arbjerg/lavalink/internal/LavalinkSocket.kt +++ b/src/main/kotlin/dev/arbjerg/lavalink/internal/LavalinkSocket.kt @@ -97,7 +97,7 @@ class LavalinkSocket(private val node: LavalinkNode) : WebSocketListener(), Clos 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() + node.destroyPlayerAndLink(event.guildId.toLong()).subscribe() } } else -> {} diff --git a/src/main/kotlin/dev/arbjerg/lavalink/libraries/discord4j/D4JVoiceUpdateHandler.kt b/src/main/kotlin/dev/arbjerg/lavalink/libraries/discord4j/D4JVoiceUpdateHandler.kt index 970ce07..53ecabe 100644 --- a/src/main/kotlin/dev/arbjerg/lavalink/libraries/discord4j/D4JVoiceUpdateHandler.kt +++ b/src/main/kotlin/dev/arbjerg/lavalink/libraries/discord4j/D4JVoiceUpdateHandler.kt @@ -34,7 +34,7 @@ fun GatewayDiscordClient.installVoiceHandler(lavalink: LavalinkClient): Disposab if (channel == null && playerState.connected) { link.state = LinkState.DISCONNECTED - link.destroyPlayer() + link.destroy() } else { link.state = LinkState.CONNECTED Mono.empty() diff --git a/src/main/kotlin/dev/arbjerg/lavalink/libraries/jda/JDAVoiceUpdateListener.kt b/src/main/kotlin/dev/arbjerg/lavalink/libraries/jda/JDAVoiceUpdateListener.kt index 833b53b..cb3812e 100644 --- a/src/main/kotlin/dev/arbjerg/lavalink/libraries/jda/JDAVoiceUpdateListener.kt +++ b/src/main/kotlin/dev/arbjerg/lavalink/libraries/jda/JDAVoiceUpdateListener.kt @@ -30,7 +30,7 @@ class JDAVoiceUpdateListener(private val lavalink: LavalinkClient) : VoiceDispat link.state = LinkState.CONNECTED } else { link.state = LinkState.DISCONNECTED - link.destroyPlayer().subscribe() + link.destroy().subscribe() } }