From fd484e3f16fcab18508bee3a95c8e10fc61a5b9c Mon Sep 17 00:00:00 2001 From: Natsumi Date: Thu, 27 May 2021 02:28:05 +1200 Subject: [PATCH] user dialog get number of users in instance --- html/src/app.js | 60 ++++++++++++++++++++++++------------------------- 1 file changed, 29 insertions(+), 31 deletions(-) diff --git a/html/src/app.js b/html/src/app.js index 6913a844..02523975 100644 --- a/html/src/app.js +++ b/html/src/app.js @@ -1602,6 +1602,30 @@ speechSynthesis.getVoices(); }); }; + API.getInstance = function (params) { + return this.call(`instances/${params.worldId}:${params.instanceId}`, { + method: 'GET' + }).then((json) => { + var args = { + json, + params + }; + this.$emit('INSTANCE', args); + return args; + }); + }; + + API.$on('INSTANCE', function (args) { + var { json } = args; + var D = $app.userDialog; + if (D.ref.location === json.id) { + D.instance = { + id: json.id, + occupants: json.n_users + }; + } + }); + // API: Friend API.friends200 = new Set(); @@ -8011,6 +8035,7 @@ speechSynthesis.getVoices(); D.loading = true; D.avatars = []; D.worlds = []; + D.instance = {}; API.getCachedUser({ userId }).catch((err) => { @@ -8080,11 +8105,10 @@ speechSynthesis.getVoices(); this.getAvatarName(args); var L = API.parseLocation(D.ref.location); if ((L.worldId) && - (this.lastLocation.location !== L.tag) && - ((L.accessType === 'public') || - (this.friends.has(L.userId)))) { - API.getWorld({ - worldId: L.worldId + (this.lastLocation.location !== L.tag)) { + API.getInstance({ + worldId: L.worldId, + instanceId: L.instanceId }); } } @@ -8154,7 +8178,6 @@ speechSynthesis.getVoices(); } users.sort(compareByDisplayName); D.users = users; - D.instance = {}; if (!L.worldId) { return; } @@ -8163,31 +8186,6 @@ speechSynthesis.getVoices(); id: L.tag, occupants: this.lastLocation.playerList.length }; - } else { - var applyInstance = function (instances) { - for (var [id, occupants] of instances) { - if (id === L.instanceId) { - D.instance = { - id, - occupants - }; - break; - } - } - }; - var ref = API.cachedWorlds.get(L.worldId); - if (typeof ref === 'undefined') { - API.getWorld({ - worldId: L.worldId - }).then((args) => { - if (args.ref.id === L.worldId) { - applyInstance(args.ref.instances); - } - return true; - }); - } else { - applyInstance(ref.instances); - } } };