mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-18 14:23:51 +02:00
OnPlayerJoining rework
This commit is contained in:
116
html/src/app.js
116
html/src/app.js
@@ -3666,6 +3666,73 @@ speechSynthesis.getVoices();
|
||||
}
|
||||
var wristFeed = [];
|
||||
wristFeed = wristFeed.concat(feeds.gameLog.wrist, feeds.feedTable.wrist, feeds.notificationTable.wrist, feeds.friendLogTable.wrist, feeds.playerModerationTable.wrist);
|
||||
var notyFeed = [];
|
||||
notyFeed = notyFeed.concat(feeds.gameLog.noty, feeds.feedTable.noty, feeds.notificationTable.noty, feeds.friendLogTable.noty, feeds.playerModerationTable.noty);
|
||||
// OnPlayerJoining
|
||||
var locationBias = Date.now() - 15000; //15 seconds
|
||||
if ((this.isGameRunning) && (this.lastLocation.date < locationBias) &&
|
||||
((this.sharedFeedFilters.wrist.OnPlayerJoining === 'Friends') || (this.sharedFeedFilters.wrist.OnPlayerJoining === 'VIP') ||
|
||||
(this.sharedFeedFilters.noty.OnPlayerJoining === 'Friends') || (this.sharedFeedFilters.noty.OnPlayerJoining === 'VIP'))) {
|
||||
var joiningMap = [];
|
||||
var bias = new Date(Date.now() - 120000).toJSON(); //2 minutes
|
||||
var feedTable = this.feedTable.data;
|
||||
for (var i = feedTable.length - 1; i > -1; i--) {
|
||||
var ctx = feedTable[i];
|
||||
if ((ctx.type === 'GPS') && (ctx.location[0] === this.lastLocation.location)) {
|
||||
if (joiningMap[ctx.displayName]) {
|
||||
continue;
|
||||
}
|
||||
var joining = true;
|
||||
var gameLogTable = this.gameLogTable.data;
|
||||
for (var k = gameLogTable.length - 1; k > -1; k--) {
|
||||
var gameLogItem = gameLogTable[k];
|
||||
if (gameLogItem.type === 'Notification') {
|
||||
continue;
|
||||
}
|
||||
if ((gameLogItem.type === 'OnPlayerJoined') && (gameLogItem.data === ctx.displayName)) {
|
||||
joining = false;
|
||||
break;
|
||||
}
|
||||
if ((gameLogItem.created_at < bias) ||
|
||||
(gameLogItem.type === 'Location')) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (joining) {
|
||||
for (var i = feedTable.length - 1; i > -1; i--) {
|
||||
var feedItem = feedTable[i];
|
||||
if (((feedItem.type === 'Friend') || ((feedItem.type === 'Status') && (feedItem.status[0].status === 'active'))) &&
|
||||
(feedItem.displayName === ctx.displayName)) {
|
||||
joining = false;
|
||||
break;
|
||||
}
|
||||
if (feedItem.created_at < bias) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (joining) {
|
||||
var onPlayerJoining = {
|
||||
...ctx,
|
||||
type: 'OnPlayerJoining'
|
||||
};
|
||||
if ((this.sharedFeedFilters.wrist.OnPlayerJoining === 'Friends') ||
|
||||
((this.sharedFeedFilters.wrist.OnPlayerJoining === 'VIP') && (ctx.isFavorite))) {
|
||||
wristFeed.push(onPlayerJoining);
|
||||
i++;
|
||||
}
|
||||
if ((this.sharedFeedFilters.noty.OnPlayerJoining === 'Friends') ||
|
||||
((this.sharedFeedFilters.noty.OnPlayerJoining === 'VIP') && (ctx.isFavorite))) {
|
||||
notyFeed.push(onPlayerJoining);
|
||||
}
|
||||
joiningMap[ctx.displayName] = ctx.created_at;
|
||||
}
|
||||
}
|
||||
if (ctx.created_at < bias) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
wristFeed.sort(function (a, b) {
|
||||
if (a.created_at < b.created_at) {
|
||||
return 1;
|
||||
@@ -3676,55 +3743,6 @@ speechSynthesis.getVoices();
|
||||
return 0;
|
||||
});
|
||||
wristFeed.splice(20);
|
||||
var notyFeed = [];
|
||||
notyFeed = notyFeed.concat(feeds.gameLog.noty, feeds.feedTable.noty, feeds.notificationTable.noty, feeds.friendLogTable.noty, feeds.playerModerationTable.noty);
|
||||
// OnPlayerJoining
|
||||
if ((this.isGameRunning) && ((this.sharedFeedFilters.wrist.OnPlayerJoining === 'Friends') || (this.sharedFeedFilters.wrist.OnPlayerJoining === 'VIP') ||
|
||||
(this.sharedFeedFilters.noty.OnPlayerJoining === 'Friends') || (this.sharedFeedFilters.noty.OnPlayerJoining === 'VIP'))) {
|
||||
var bias = new Date(Date.now() - 120000).toJSON(); //2 minutes
|
||||
var locationBias = new Date(Date.now() - 15000).toJSON(); //15 seconds
|
||||
for (var i = 0; i < wristFeed.length; i++) {
|
||||
var ctx = wristFeed[i];
|
||||
if ((ctx.created_at < bias) || (ctx.type === 'Location')) {
|
||||
break;
|
||||
}
|
||||
if ((ctx.type === 'GPS') && (ctx.location[0] === this.lastLocation.location)) {
|
||||
var joining = true;
|
||||
for (var k = 0; k < wristFeed.length; k++) {
|
||||
var feedItem = wristFeed[k];
|
||||
if ((this.hideOnPlayerJoined) && (feedItem.type === 'Location') &&
|
||||
(feedItem.created_at < locationBias)) {
|
||||
joining = false;
|
||||
break;
|
||||
}
|
||||
if ((feedItem.data === ctx.displayName) ||
|
||||
(((feedItem.type === 'Friend') || (feedItem.type === 'Status')) && (feedItem.displayName === ctx.displayName))) {
|
||||
joining = false;
|
||||
break;
|
||||
}
|
||||
if ((feedItem.created_at < bias) ||
|
||||
(feedItem.type === 'Location')) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (joining) {
|
||||
var onPlayerJoining = {
|
||||
...ctx,
|
||||
type: 'OnPlayerJoining'
|
||||
};
|
||||
if ((this.sharedFeedFilters.wrist.OnPlayerJoining === 'Friends') ||
|
||||
((this.sharedFeedFilters.wrist.OnPlayerJoining === 'VIP') && (ctx.isFavorite))) {
|
||||
wristFeed.splice(i, 0, onPlayerJoining);
|
||||
i++;
|
||||
}
|
||||
if ((this.sharedFeedFilters.noty.OnPlayerJoining === 'Friends') ||
|
||||
((this.sharedFeedFilters.noty.OnPlayerJoining === 'VIP') && (ctx.isFavorite))) {
|
||||
notyFeed.push(onPlayerJoining);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
notyFeed.sort(function (a, b) {
|
||||
if (a.created_at < b.created_at) {
|
||||
return 1;
|
||||
|
||||
Reference in New Issue
Block a user