diff --git a/html/src/app.js b/html/src/app.js
index 9b73d704..3ad2b846 100644
--- a/html/src/app.js
+++ b/html/src/app.js
@@ -1602,6 +1602,12 @@ speechSynthesis.getVoices();
});
};
+ /*
+ params: {
+ worldId: string,
+ instanceId: string
+ }
+ */
API.getInstance = function (params) {
return this.call(`instances/${params.worldId}:${params.instanceId}`, {
method: 'GET'
@@ -5385,38 +5391,36 @@ speechSynthesis.getVoices();
removeFromArray(this.friendsGroup3_, ctx);
removeFromArray(this.friendsGroupD_, ctx);
}
- if (typeof ctx.ref !== 'undefined') {
- if ((ctx.ref.$offline_for === '') &&
+ var { location, $location_at } = ref;
+ var args = await API.getUser({
+ userId: id
+ });
+ if ((typeof args !== 'undefined') &&
+ (typeof args.ref !== 'undefined')) {
+ state = args.ref.state;
+ ctx.ref = args.ref;
+ }
+ if (ctx.state !== state) {
+ if ((typeof ctx.ref.$offline_for !== 'undefined') &&
+ (ctx.ref.$offline_for === '') &&
((state === 'offline') || (state === 'active')) &&
(ctx.state === 'online')) {
ctx.ref.$online_for = '';
ctx.ref.$offline_for = Date.now();
if (ctx.state === 'online') {
var ts = Date.now();
- var time = ts - ctx.ref.$location_at;
- API.getUser({
- userId: id
- });
+ var time = ts - $location_at;
this.addFeed('Offline', ctx.ref, {
- location: (ctx.ref.location === 'offline') ? '' : ctx.ref.location,
- time: time
+ location: (location === 'offline') ? '' : location,
+ time
});
}
- }
- if (state === 'online') {
+ } else if (state === 'online') {
ctx.ref.$location_at = Date.now();
ctx.ref.$online_for = Date.now();
ctx.ref.$offline_for = '';
- API.getUser({
- userId: id
- }).then((args) => {
- this.addFeed('Online', args.ref, {
- location: args.ref.location
- });
- }).catch(() => {
- this.addFeed('Online', ctx.ref, {
- location: ctx.ref.location
- });
+ this.addFeed('Online', ctx.ref, {
+ location: ctx.ref.location
});
}
}
@@ -5428,13 +5432,11 @@ speechSynthesis.getVoices();
if (ctx.isVIP !== isVIP) {
ctx.isVIP = isVIP;
}
- if (typeof ref !== 'undefined') {
- if (ctx.ref !== ref) {
- ctx.ref = ref;
- }
- if (ctx.name !== ref.displayName) {
- ctx.name = ref.displayName;
- }
+ if (ctx.ref.state === '') {
+ ctx.ref.state = 'offline';
+ }
+ if (ctx.name !== ctx.ref.displayName) {
+ ctx.name = ctx.ref.displayName;
}
if (ctx.state === 'online') {
if (ctx.isVIP) {