2424
2525import com .sedmelluq .discord .lavaplayer .track .AudioTrack ;
2626import lavalink .client .LavalinkUtil ;
27+ import lavalink .client .io .LavalinkSocket ;
2728import lavalink .client .io .Link ;
2829import lavalink .client .player .event .IPlayerEventListener ;
2930import 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