List of players in current instance

This commit is contained in:
Natsumi
2021-03-19 07:45:30 +13:00
parent fd286fef2f
commit 69be79709c
3 changed files with 51 additions and 37 deletions

View File

@@ -3767,10 +3767,10 @@ speechSynthesis.getVoices();
var wristFilter = this.sharedFeedFilters.wrist;
var notyFilter = this.sharedFeedFilters.noty;
var locationChange = false;
var playerCountDone = false;
var playerCount = 0;
var friendCount = 0;
while ((w < 20) || (n < 5) || ((!locationChange) && (this.hideOnPlayerJoined)) || !playerCountDone) {
var playerCountIndex = 0;
var playerList = [];
var friendList = [];
while ((w < 20) || (n < 5) || ((!locationChange) && (this.hideOnPlayerJoined))) {
var ctx = data[--i];
if ((i <= -1) || (ctx.created_at < bias)) {
break;
@@ -3778,6 +3778,13 @@ speechSynthesis.getVoices();
if (ctx.type === 'Notification') {
continue;
}
if ((playerCountIndex === 0) && (ctx.type === 'Location')) {
playerCountIndex = i;
}
if (((ctx.type === 'OnPlayerJoined') || (ctx.type === 'OnPlayerLeft')) &&
(ctx.data === API.currentUser.displayName)) {
continue;
}
// on Location change remove OnPlayerJoined
if ((ctx.type === 'Location') && (this.hideOnPlayerJoined)) {
var locationBias = new Date(Date.parse(ctx.created_at) + 15000).toJSON(); //15 seconds
@@ -3814,26 +3821,6 @@ speechSynthesis.getVoices();
break;
}
}
// instance player count
if (ctx.type === 'Location') {
playerCountDone = true;
}
if ((!playerCountDone) && (ctx.type === 'OnPlayerJoined')) {
playerCount++;
if (isFriend) {
friendCount++;
}
}
if ((!playerCountDone) && (ctx.type === 'OnPlayerLeft')) {
playerCount--;
if (isFriend) {
friendCount--;
}
}
if (((ctx.type === 'OnPlayerJoined') || (ctx.type === 'OnPlayerLeft')) &&
(ctx.data === API.currentUser.displayName)) {
continue;
}
if ((w < 20) && (wristFilter[ctx.type]) &&
((wristFilter[ctx.type] === 'On') ||
(wristFilter[ctx.type] === 'Everyone') ||
@@ -3859,8 +3846,35 @@ speechSynthesis.getVoices();
++n;
}
}
this.lastLocation.playerCount = playerCount;
this.lastLocation.friendCount = friendCount;
// instance player list
for (var i = playerCountIndex + 1; i < data.length; i++) {
var ctx = data[i];
if (ctx.type === 'OnPlayerJoined') {
playerList.push(ctx.data);
var isFriend = false;
for (var ref of API.cachedUsers.values()) {
if (ref.displayName === ctx.data) {
isFriend = this.friends.has(ref.id);
break;
}
}
if (isFriend) {
friendList.push(ctx.data);
}
}
if (ctx.type === 'OnPlayerLeft') {
var index = playerList.indexOf(ctx.data);
if (index > -1) {
playerList.splice(index, 1);
}
var index = friendList.indexOf(ctx.data);
if (index > -1) {
friendList.splice(index, 1);
}
}
}
this.lastLocation.playerList = playerList;
this.lastLocation.friendList = friendList;
sharedRepository.setObject('last_location', this.lastLocation);
this.sharedFeed.gameLog.wrist = wristArr;
this.sharedFeed.gameLog.noty = notyArr;
@@ -5411,8 +5425,8 @@ speechSynthesis.getVoices();
date: 0,
location: '',
name: '',
playerCount: 0,
friendCount: 0
playerList: [],
friendList: []
};
$app.data.lastLocation$ = {};
$app.data.discordActive = configRepository.getBool('discordActive');
@@ -5471,8 +5485,8 @@ speechSynthesis.getVoices();
date: 0,
location: '',
name: '',
playerCount: 0,
friendCount: 0
playerList: [],
friendList: []
};
};
@@ -6843,8 +6857,8 @@ speechSynthesis.getVoices();
date: 0,
location: '',
name: '',
playerCount: 0,
friendCount: 0
playerList: [],
friendList: []
};
if (this.isGameRunning) {
API.currentUser.$online_for = Date.now();

View File

@@ -698,8 +698,8 @@ speechSynthesis.getVoices();
date: 0,
location: '',
name: '',
playerCount: 0,
friendCount: 0
playerList: [],
friendList: []
},
lastLocationTimer: '',
wristFeedLastEntry: '',

View File

@@ -282,9 +282,9 @@ html
span {{ device[2] }}%
.x-containerbottom
template(v-if="lastLocation.date != 0")
span(style="float:right") Timer: {{ lastLocationTimer }}
span(style="display:inline-block") Players: {{ lastLocation.playerCount }}
span(style="display:inline-block;font-weight:bold") {{ lastLocation.friendCount !== 0 ? ` (${lastLocation.friendCount})` : ''}}
span(style="float:right") Timer: {{ lastLocationTimer }}
span(style="display:inline-block") Players: {{ lastLocation.playerList.length }}
span(style="display:inline-block;font-weight:bold") {{ lastLocation.friendList.length !== 0 ? ` (${lastLocation.friendList.length})` : ''}}
br
span(style="float:right") {{ currentTime | formatDate('YYYY-MM-DD HH:MI:SS AMPM') }}
span CPU {{ cpuUsage }}%