From 75888cb66b3dfbd616a0c7f899439a7f228450ea Mon Sep 17 00:00:00 2001 From: Thomas Pietrzak Date: Sun, 29 Mar 2020 23:01:11 +0200 Subject: [PATCH 1/2] Use lobby name in server page --- template/server.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template/server.html b/template/server.html index 822f3a6..c820633 100644 --- a/template/server.html +++ b/template/server.html @@ -59,7 +59,7 @@
From 9abec872827724ada308cbb7b081b02e12b49d74 Mon Sep 17 00:00:00 2001 From: Thomas Pietrzak Date: Sun, 29 Mar 2020 23:52:07 +0200 Subject: [PATCH 2/2] Live update test --- protos/lobby.proto | 1 + src/client/lobby-interface.js | 6 ++++++ src/server/lobby/persist.js | 11 +++++++++-- src/server/lobby/playerlobbyservice.js | 2 +- 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/protos/lobby.proto b/protos/lobby.proto index b15c874..f3c9add 100644 --- a/protos/lobby.proto +++ b/protos/lobby.proto @@ -220,6 +220,7 @@ message LobbyUpdate { enum LobbyStatus { ADDED = 0; REMOVED = 1; + UPDATED = 2; } message ListLobbiesRequest { } diff --git a/src/client/lobby-interface.js b/src/client/lobby-interface.js index 0e2e4e2..4bbf11e 100644 --- a/src/client/lobby-interface.js +++ b/src/client/lobby-interface.js @@ -40,6 +40,12 @@ class LobbyInterface extends global.EventEmitter { }) channel.on('PapanLobby.PublicLobbyUpdate', data => { const id = data.lobby.id + if (data.status === 'UPDATED') { + if (this.lobbyList[id]) { + this.lobbyList[id].update(data) + } + this.emit('publicLobbyUpdate', data.lobby) + } if (data.status === 'ADDED' && !this.lobbyList[id]) { if (this.publicLobbyList[id]) { this.emit('publicLobbyUpdate', data.lobby) diff --git a/src/server/lobby/persist.js b/src/server/lobby/persist.js index 8377866..227c813 100644 --- a/src/server/lobby/persist.js +++ b/src/server/lobby/persist.js @@ -264,8 +264,15 @@ class PersistClient { return this.getLobbyInfo({ id: id }) } - setLobbyName (data) { - return this._setLobbyField(deepmerge(data, { field: 'name' })) + async setLobbyName (data) { + const info = await this._setLobbyField(deepmerge(data, { field: 'name' })) + if (info.public) { + await this._client.publish('publiclobbies', PapanUtils.JSON.stringify({ + id: data.id, + status: 'UPDATED' + })) + } + return info } async setLobbyPublic (data) { diff --git a/src/server/lobby/playerlobbyservice.js b/src/server/lobby/playerlobbyservice.js index c630d3f..c4c828f 100644 --- a/src/server/lobby/playerlobbyservice.js +++ b/src/server/lobby/playerlobbyservice.js @@ -222,7 +222,7 @@ const ListLobbies = call => { lobbies.forEach(info => { call.write({ lobby: info, - status: 0 + status: 'ADDED' }) }) })