diff options
| author | RblSb <msrblsb@gmail.com> | 2020-04-26 23:37:29 +0300 |
|---|---|---|
| committer | RblSb <msrblsb@gmail.com> | 2020-04-26 23:37:29 +0300 |
| commit | 9f93fb9783c4647a0e25b67078dded196d035ca9 (patch) | |
| tree | a12ebef2b5ff5da710176654d9144c2acafaf706 /src | |
| parent | e0f2520fb03ed07a38e96c012c0f599b2fbe7f04 (diff) | |
Fix posible double skip / npe
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/Main.hx | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/server/Main.hx b/src/server/Main.hx index b9c4d52..0023c5f 100644 --- a/src/server/Main.hx +++ b/src/server/Main.hx @@ -426,9 +426,13 @@ class Main { case GetTime: if (videoList.length == 0) return; - if (videoTimer.getTime() > videoList[itemPos].duration - 0.01) { - videoTimer.stop(); + final maxTime = videoList[itemPos].duration - 0.01; + if (videoTimer.getTime() > maxTime) { + videoTimer.pause(); + videoTimer.setTime(maxTime); + final currentLength = videoList.length; Timer.delay(() -> { + if (videoList.length != currentLength) return; onMessage(client, { type: SkipVideo, skipVideo: { url: videoList[itemPos].url @@ -445,7 +449,7 @@ class Main { if (videoTimer.isPaused()) obj.getTime.paused = true; if (videoTimer.getRate() != 1) { if (!clients.hasLeader()) videoTimer.setRate(1); - obj.getTime.rate = videoTimer.getRate(); + else obj.getTime.rate = videoTimer.getRate(); } send(client, obj); |
