Skip to content

Commit eb36c7d

Browse files
committed
Fix LLC creating new players when we aren't even associated with a node
1 parent f19d1af commit eb36c7d

File tree

1 file changed

+37
-22
lines changed

1 file changed

+37
-22
lines changed

LavalinkClient/src/main/java/lavalink/client/player/LavalinkPlayer.java

Lines changed: 37 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
import com.sedmelluq.discord.lavaplayer.track.AudioTrack;
2626
import lavalink.client.LavalinkUtil;
27+
import lavalink.client.io.LavalinkSocket;
2728
import lavalink.client.io.Link;
2829
import lavalink.client.player.event.IPlayerEventListener;
2930
import lavalink.client.player.event.PlayerEvent;
@@ -81,18 +82,22 @@ public void playTrack(AudioTrack track) {
8182
try {
8283
position = track.getPosition();
8384
TrackData trackData = track.getUserData(TrackData.class);
84-
85-
JSONObject json = new JSONObject();
86-
json.put("op", "play");
87-
json.put("guildId", link.getGuildId());
88-
json.put("track", LavalinkUtil.toMessage(track));
89-
json.put("startTime", position);
90-
if (trackData != null) {
91-
json.put("startTime", trackData.startPos);
92-
json.put("endTime", trackData.endPos);
85+
LavalinkSocket node = link.getNode(false);
86+
87+
if (node != null) {
88+
JSONObject json = new JSONObject();
89+
json.put("op", "play");
90+
json.put("guildId", link.getGuildId());
91+
json.put("track", LavalinkUtil.toMessage(track));
92+
json.put("startTime", position);
93+
if (trackData != null) {
94+
json.put("startTime", trackData.startPos);
95+
json.put("endTime", trackData.endPos);
96+
}
97+
json.put("pause", paused);
98+
node.send(json.toString());
9399
}
94-
json.put("pause", paused);
95-
link.getNode(true).send(json.toString());
100+
96101
updateTime = System.currentTimeMillis();
97102
this.track = track;
98103
emitEvent(new TrackStartEvent(this, track));
@@ -103,22 +108,27 @@ public void playTrack(AudioTrack track) {
103108

104109
@Override
105110
public void stopTrack() {
111+
track = null;
112+
113+
LavalinkSocket node = link.getNode(false);
114+
if (node == null) return;
106115
JSONObject json = new JSONObject();
107116
json.put("op", "stop");
108117
json.put("guildId", link.getGuildId());
109-
link.getNode(true).send(json.toString());
110-
track = null;
118+
node.send(json.toString());
111119
}
112120

113121
@Override
114122
public void setPaused(boolean pause) {
115123
if (pause == paused) return;
116-
117-
JSONObject json = new JSONObject();
118-
json.put("op", "pause");
119-
json.put("guildId", link.getGuildId());
120-
json.put("pause", pause);
121-
link.getNode(true).send(json.toString());
124+
LavalinkSocket node = link.getNode(false);
125+
if (node != null) {
126+
JSONObject json = new JSONObject();
127+
json.put("op", "pause");
128+
json.put("guildId", link.getGuildId());
129+
json.put("pause", pause);
130+
node.send(json.toString());
131+
}
122132
paused = pause;
123133

124134
if (pause) {
@@ -151,24 +161,29 @@ public long getTrackPosition() {
151161
public void seekTo(long position) {
152162
if (getPlayingTrack() == null) throw new IllegalStateException("Not currently playing anything");
153163
if (!getPlayingTrack().isSeekable()) throw new IllegalStateException("Track cannot be seeked");
164+
LavalinkSocket node = link.getNode(false);
165+
if (node == null) return;
154166

155167
JSONObject json = new JSONObject();
156168
json.put("op", "seek");
157169
json.put("guildId", link.getGuildId());
158170
json.put("position", position);
159-
link.getNode(true).send(json.toString());
171+
node.send(json.toString());
160172
}
161173

162174
@Override
163175
public void setVolume(int volume) {
164176
volume = Math.min(150, Math.max(0, volume)); // Lavaplayer bounds
177+
this.volume = volume;
178+
179+
LavalinkSocket node = link.getNode(false);
180+
if (node == null) return;
165181

166182
JSONObject json = new JSONObject();
167183
json.put("op", "volume");
168184
json.put("guildId", link.getGuildId());
169185
json.put("volume", volume);
170-
link.getNode(true).send(json.toString());
171-
this.volume = volume;
186+
node.send(json.toString());
172187
}
173188

174189
@Override

0 commit comments

Comments
 (0)