|
1 | 1 | package lavalink.server.io |
2 | 2 |
|
3 | | -import com.sedmelluq.discord.lavaplayer.track.TrackMarker |
4 | | -import lavalink.server.player.TrackEndMarkerHandler |
5 | 3 | import lavalink.server.util.Util |
6 | 4 | import org.json.JSONObject |
7 | 5 | import org.springframework.web.socket.WebSocketSession |
@@ -39,14 +37,17 @@ class WebSocketHandlers(private val contextMap: Map<String, SocketContext>) { |
39 | 37 | fun play(session: WebSocketSession, json: JSONObject) { |
40 | 38 | val ctx = contextMap[session.id]!! |
41 | 39 | val player = ctx.getPlayer(json.getString("guildId")) |
42 | | - val track = Util.toAudioTrack(ctx.audioPlayerManager, json.getString("track")) |
43 | | - if (json.has("startTime")) { |
44 | | - track.position = json.getLong("startTime") |
| 40 | + var track = Util.toAudioTrack(ctx.audioPlayerManager, json.getString("track")) |
| 41 | + val noReplaceSame = json.optBoolean("noReplaceSame", false) |
| 42 | + |
| 43 | + if (noReplaceSame && track.identifier == player.playingTrack?.identifier) { |
| 44 | + track = player.playingTrack |
| 45 | + } else { |
| 46 | + if (json.has("startTime")) { |
| 47 | + track.position = json.getLong("startTime") |
| 48 | + } |
45 | 49 | } |
46 | | - if (json.has("endTime")) { |
47 | | - track.setMarker(TrackMarker(json.getLong("endTime"), TrackEndMarkerHandler(player))) |
48 | | - } |
49 | | - |
| 50 | + |
50 | 51 | player.setPause(json.optBoolean("pause", false)) |
51 | 52 | if (json.has("volume")) { |
52 | 53 | player.setVolume(json.getInt("volume")) |
|
0 commit comments