diff --git a/html/src/app.js b/html/src/app.js index 52fa30bd..fe9875fb 100644 --- a/html/src/app.js +++ b/html/src/app.js @@ -3889,6 +3889,7 @@ speechSynthesis.getVoices(); var playerCountIndex = 0; var playerList = []; var friendList = []; + var currentUserLeaveTime = ''; for (var i = data.length - 1; i > -1; i--) { var ctx = data[i]; if (ctx.created_at < bias) { @@ -3900,6 +3901,33 @@ speechSynthesis.getVoices(); if ((playerCountIndex === 0) && (ctx.type === 'Location')) { playerCountIndex = i; } + // on Location change remove OnPlayerLeft + if (ctx.type === 'OnPlayerLeft') { + if (ctx.created_at === currentUserLeaveTime) { + continue; + } + if (ctx.data === API.currentUser.displayName) { + currentUserLeaveTime = ctx.created_at; + for (var k = w - 1; k > -1; k--) { + var feedItem = wristArr[k]; + if ((feedItem.created_at === currentUserLeaveTime) && + (feedItem.type === 'OnPlayerLeft')) { + wristArr.splice(k, 1); + w--; + } + } + for (var k = n - 1; k > -1; k--) { + var feedItem = notyArr[k]; + if ((feedItem.created_at === currentUserLeaveTime) && + (feedItem.type === 'OnPlayerLeft')) { + notyArr.splice(k, 1); + n--; + } + } + continue; + } + } + // remove current user if (((ctx.type === 'OnPlayerJoined') || (ctx.type === 'OnPlayerLeft') || (ctx.type === 'PortalSpawn')) && @@ -3945,6 +3973,7 @@ speechSynthesis.getVoices(); } } } + //BlockedOnPlayerJoined, BlockedOnPlayerLeft, MutedOnPlayerJoined, MutedOnPlayerLeft if ((ctx.type === 'OnPlayerJoined') || (ctx.type === 'OnPlayerLeft')) { for (var ref of this.playerModerationTable.data) {