mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-19 14:53:50 +02:00
Fix OnPlayerLeft location traveling
This commit is contained in:
@@ -8105,6 +8105,7 @@ speechSynthesis.getVoices();
|
|||||||
switch (gameLog.type) {
|
switch (gameLog.type) {
|
||||||
case 'location-destination':
|
case 'location-destination':
|
||||||
if (this.isGameRunning) {
|
if (this.isGameRunning) {
|
||||||
|
this.lastLocationReset();
|
||||||
this.lastLocation.location = 'traveling';
|
this.lastLocation.location = 'traveling';
|
||||||
this.lastLocationDestination = gameLog.location;
|
this.lastLocationDestination = gameLog.location;
|
||||||
this.lastLocationDestinationTime = Date.parse(gameLog.dt);
|
this.lastLocationDestinationTime = Date.parse(gameLog.dt);
|
||||||
@@ -8185,6 +8186,11 @@ speechSynthesis.getVoices();
|
|||||||
database.addGamelogJoinLeaveToDatabase(entry);
|
database.addGamelogJoinLeaveToDatabase(entry);
|
||||||
break;
|
break;
|
||||||
case 'player-left':
|
case 'player-left':
|
||||||
|
if (
|
||||||
|
!this.lastLocation.playerList.has(gameLog.userDisplayName)
|
||||||
|
) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
var time = 0;
|
var time = 0;
|
||||||
var ref = this.lastLocation.playerList.get(
|
var ref = this.lastLocation.playerList.get(
|
||||||
gameLog.userDisplayName
|
gameLog.userDisplayName
|
||||||
@@ -10919,6 +10925,7 @@ speechSynthesis.getVoices();
|
|||||||
|
|
||||||
$app.methods.getFriendLog = async function () {
|
$app.methods.getFriendLog = async function () {
|
||||||
await database.cleanLegendFromFriendLog(); // fix database spam crap
|
await database.cleanLegendFromFriendLog(); // fix database spam crap
|
||||||
|
await database.fixGameLogTraveling(); // fix past bug with incorrect gameLog locations
|
||||||
var friendLogCurrentArray = await database.getFriendLogCurrent();
|
var friendLogCurrentArray = await database.getFriendLogCurrent();
|
||||||
for (var friend of friendLogCurrentArray) {
|
for (var friend of friendLogCurrentArray) {
|
||||||
this.friendLog.set(friend.userId, friend);
|
this.friendLog.set(friend.userId, friend);
|
||||||
|
|||||||
@@ -1490,6 +1490,49 @@ class Database {
|
|||||||
);
|
);
|
||||||
sqliteService.executeNonQuery('DELETE FROM cache_avatar');
|
sqliteService.executeNonQuery('DELETE FROM cache_avatar');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async fixGameLogTraveling() {
|
||||||
|
var travelingList = [];
|
||||||
|
await sqliteService.execute((dbRow) => {
|
||||||
|
var row = {
|
||||||
|
rowId: dbRow[0],
|
||||||
|
created_at: dbRow[1],
|
||||||
|
type: dbRow[2],
|
||||||
|
displayName: dbRow[3],
|
||||||
|
location: dbRow[4],
|
||||||
|
userId: dbRow[5],
|
||||||
|
time: dbRow[6]
|
||||||
|
};
|
||||||
|
travelingList.unshift(row);
|
||||||
|
}, 'SELECT * FROM gamelog_join_leave WHERE type = "OnPlayerLeft" AND location = "traveling"');
|
||||||
|
travelingList.forEach(async (travelingEntry) => {
|
||||||
|
await sqliteService.execute(
|
||||||
|
(dbRow) => {
|
||||||
|
var onPlayingJoin = {
|
||||||
|
rowId: dbRow[0],
|
||||||
|
created_at: dbRow[1],
|
||||||
|
type: dbRow[2],
|
||||||
|
displayName: dbRow[3],
|
||||||
|
location: dbRow[4],
|
||||||
|
userId: dbRow[5],
|
||||||
|
time: dbRow[6]
|
||||||
|
};
|
||||||
|
sqliteService.executeNonQuery(
|
||||||
|
`UPDATE gamelog_join_leave SET location = @location WHERE id = @rowId`,
|
||||||
|
{
|
||||||
|
'@rowId': travelingEntry.rowId,
|
||||||
|
'@location': onPlayingJoin.location
|
||||||
|
}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
'SELECT * FROM gamelog_join_leave WHERE type = "OnPlayerJoined" AND display_name = @displayName AND created_at <= @created_at ORDER BY created_at DESC LIMIT 1',
|
||||||
|
{
|
||||||
|
'@displayName': travelingEntry.displayName,
|
||||||
|
'@created_at': travelingEntry.created_at
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var self = new Database();
|
var self = new Database();
|
||||||
|
|||||||
Reference in New Issue
Block a user