Skip to content

Commit fc31fc9

Browse files
committed
Use onSuccess instead of onNext for rest handlers
Fixes #17
1 parent 7b7fc55 commit fc31fc9

File tree

5 files changed

+17
-13
lines changed

5 files changed

+17
-13
lines changed

src/main/kotlin/dev/arbjerg/lavalink/client/LavalinkNode.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ class LavalinkNode(
6363
var available: Boolean = false
6464
internal set
6565

66-
// TODO: cache player per link instead?
6766
/**
6867
* A local player cache, allows us to not call the rest client every time we need a player.
6968
*/
@@ -99,7 +98,7 @@ class LavalinkNode(
9998

10099
return rest.getPlayers()
101100
.map { it.players.map { pl -> pl.toLavalinkPlayer(this) } }
102-
.doOnNext {
101+
.doOnSuccess {
103102
it.forEach { player ->
104103
playerCache[player.guildId] = player
105104
}
@@ -123,7 +122,7 @@ class LavalinkNode(
123122
return rest.getPlayer(guildId)
124123
.map { it.toLavalinkPlayer(this) }
125124
.onErrorResume { createOrUpdatePlayer(guildId) }
126-
.doOnNext {
125+
.doOnSuccess {
127126
// Update the player internally upon retrieving it.
128127
playerCache[it.guildId] = it
129128
}
@@ -155,8 +154,8 @@ class LavalinkNode(
155154
if (!available) return Mono.error(IllegalStateException("Node is not available"))
156155

157156
return rest.destroyPlayer(guildId)
158-
.doOnNext {
159-
playerCache.remove(guildId)
157+
.doOnSuccess {
158+
removeCachedPlayer(guildId)
160159
}
161160
}
162161

src/main/kotlin/dev/arbjerg/lavalink/client/PlayerUpdateBuilder.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ class PlayerUpdateBuilder internal constructor(private val node: LavalinkNode, p
135135
override fun subscribe(actual: CoreSubscriber<in LavalinkPlayer>) {
136136
node.rest.updatePlayer(build(), guildId, noReplace)
137137
.map { it.toLavalinkPlayer(node) }
138-
.doOnNext {
138+
.doOnSuccess {
139139
// Update player in cache
140140
node.playerCache[guildId] = it
141141
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,10 @@ class LavalinkSocket(private val node: LavalinkNode) : WebSocketListener(), Clos
8181

8282
when (event) {
8383
is Message.EmittedEvent.TrackStartEvent -> {
84-
node.playerCache[event.guildId.toLong()]?.track = event.track.toCustom()
84+
node.getCachedPlayer(event.guildId.toLong())?.track = event.track.toCustom()
8585
}
8686
is Message.EmittedEvent.TrackEndEvent -> {
87-
node.playerCache[event.guildId.toLong()]?.track = null
87+
node.getCachedPlayer(event.guildId.toLong())?.track = null
8888
}
8989
else -> {}
9090
}

src/main/kotlin/dev/arbjerg/lavalink/libraries/jda/JDAVoiceUpdateListener.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class JDAVoiceUpdateListener(private val lavalink: LavalinkClient) : VoiceDispat
2222
override fun onVoiceStateUpdate(update: VoiceDispatchInterceptor.VoiceStateUpdate): Boolean {
2323
val channel = update.channel
2424
val link = lavalink.getLinkIfCached(update.guildIdLong) ?: return false
25-
val player = link.node.playerCache[update.guildIdLong] ?: return false
25+
val player = link.node.getCachedPlayer(update.guildIdLong) ?: return false
2626
val playerState = player.state
2727

2828
if (channel == null) {

src/test/kotlin/testScript.kt

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,19 +84,19 @@ fun main() {
8484

8585
fun registerNode(client: LavalinkClient) {
8686
listOf(
87-
/*client.addNode(
87+
client.addNode(
8888
"Testnode",
8989
URI.create("ws://localhost:2333"),
9090
"youshallnotpass",
9191
RegionGroup.EUROPE
92-
),*/
92+
),
9393

94-
client.addNode(
94+
/*client.addNode(
9595
"Mac-mini",
9696
URI.create("ws://192.168.1.139:2333/bepis"),
9797
"youshallnotpass",
9898
RegionGroup.US
99-
)
99+
)*/
100100
)
101101
.forEach { node ->
102102
node.on<TrackStartEvent>()
@@ -171,6 +171,11 @@ private fun handleSlash(lavalink: LavalinkClient, event: SlashCommandInteraction
171171
// Disconnecting automatically destroys the player
172172
event.jda.directAudioController.disconnect(event.guild!!)
173173
event.reply("Leaving your channel!").queue()
174+
175+
val guildId = event.guild!!.idLong
176+
val link = lavalink.getLink(guildId)
177+
178+
println(link.node.playerCache)
174179
}
175180

176181
"play" -> {

0 commit comments

Comments
 (0)