From 298197a07496a762c415d0a7c77e0307243504b8 Mon Sep 17 00:00:00 2001 From: RblSb Date: Mon, 2 Mar 2020 12:51:20 +0300 Subject: Playlist lock toggler --- src/server/Main.hx | 15 +++++++++++++++ src/server/ServerState.hx | 1 + 2 files changed, 16 insertions(+) (limited to 'src/server') diff --git a/src/server/Main.hx b/src/server/Main.hx index 424f22f..4ecc25a 100644 --- a/src/server/Main.hx +++ b/src/server/Main.hx @@ -34,6 +34,7 @@ class Main { final videoList = new VideoList(); final videoTimer = new VideoTimer(); final messages:Array = []; + var isPlaylistOpen = true; var itemPos = 0; static function main():Void new Main(); @@ -131,6 +132,7 @@ class Main { trace("Saving state..."); final data:ServerState = { videoList: videoList, + isPlaylistOpen: isPlaylistOpen, itemPos: itemPos, messages: messages, timer: { @@ -149,6 +151,7 @@ class Main { videoList.resize(0); messages.resize(0); for (item in data.videoList) videoList.push(item); + isPlaylistOpen = data.isPlaylistOpen; itemPos = data.itemPos; for (message in data.messages) messages.push(message); videoTimer.start(); @@ -212,6 +215,7 @@ class Main { for (client in clients) client.getData() ], videoList: videoList, + isPlaylistOpen: isPlaylistOpen, itemPos: itemPos, globalIp: globalIp } @@ -307,6 +311,7 @@ class Main { broadcast(data); case AddVideo: + if (!client.isAdmin && !isPlaylistOpen) return; final item = data.addVideo.item; item.author = client.name; final local = '$localIp:$port'; @@ -448,6 +453,16 @@ class Main { videoList: videoList }}); case UpdatePlaylist: // client-only + + case TogglePlaylistLock: + if (!client.isAdmin) return; + isPlaylistOpen = !isPlaylistOpen; + broadcast({ + type: TogglePlaylistLock, + togglePlaylistLock: { + isOpen: isPlaylistOpen + } + }); } } diff --git a/src/server/ServerState.hx b/src/server/ServerState.hx index 02cdc40..9c8d751 100644 --- a/src/server/ServerState.hx +++ b/src/server/ServerState.hx @@ -5,6 +5,7 @@ import Types.VideoItem; typedef ServerState = { videoList:Array, + isPlaylistOpen:Bool, itemPos:Int, messages:Array, timer:{ -- cgit v1.2.3