mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-15 04:43:50 +02:00
133 lines
3.2 KiB
JavaScript
133 lines
3.2 KiB
JavaScript
// requires binding of LogWatcher
|
|
|
|
class GameLogService {
|
|
parseRawGameLog(dt, type, args) {
|
|
var gameLog = {
|
|
dt,
|
|
type
|
|
};
|
|
|
|
switch (type) {
|
|
case 'location':
|
|
gameLog.location = args[0];
|
|
gameLog.worldName = args[1];
|
|
break;
|
|
|
|
case 'location-destination':
|
|
gameLog.location = args[0];
|
|
break;
|
|
|
|
case 'player-joined':
|
|
gameLog.displayName = args[0];
|
|
gameLog.userId = args[1];
|
|
break;
|
|
|
|
case 'player-left':
|
|
gameLog.displayName = args[0];
|
|
gameLog.userId = args[1];
|
|
break;
|
|
|
|
case 'notification':
|
|
gameLog.json = args[0];
|
|
break;
|
|
|
|
case 'portal-spawn':
|
|
break;
|
|
|
|
case 'event':
|
|
gameLog.event = args[0];
|
|
break;
|
|
|
|
case 'video-play':
|
|
gameLog.videoUrl = args[0];
|
|
gameLog.displayName = args[1];
|
|
break;
|
|
|
|
case 'resource-load-string':
|
|
case 'resource-load-image':
|
|
gameLog.resourceUrl = args[0];
|
|
break;
|
|
|
|
case 'video-sync':
|
|
gameLog.timestamp = args[0];
|
|
break;
|
|
|
|
case 'vrcx':
|
|
gameLog.data = args[0];
|
|
break;
|
|
|
|
case 'api-request':
|
|
gameLog.url = args[0];
|
|
break;
|
|
|
|
case 'avatar-change':
|
|
gameLog.displayName = args[0];
|
|
gameLog.avatarName = args[1];
|
|
break;
|
|
|
|
case 'photon-id':
|
|
gameLog.displayName = args[0];
|
|
gameLog.photonId = args[1];
|
|
break;
|
|
|
|
case 'screenshot':
|
|
gameLog.screenshotPath = args[0];
|
|
break;
|
|
|
|
case 'vrc-quit':
|
|
break;
|
|
|
|
case 'openvr-init':
|
|
break;
|
|
|
|
case 'desktop-mode':
|
|
break;
|
|
|
|
case 'udon-exception':
|
|
gameLog.data = args[0];
|
|
break;
|
|
|
|
case 'sticker-spawn':
|
|
gameLog.userId = args[0];
|
|
gameLog.displayName = args[1];
|
|
gameLog.inventoryId = args[2];
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
return gameLog;
|
|
}
|
|
|
|
async getAll() {
|
|
var gameLogs = [];
|
|
var done = false;
|
|
while (!done) {
|
|
var rawGameLogs = await LogWatcher.Get();
|
|
// eslint-disable-next-line no-unused-vars
|
|
for (var [fileName, dt, type, ...args] of rawGameLogs) {
|
|
var gameLog = this.parseRawGameLog(dt, type, args);
|
|
gameLogs.push(gameLog);
|
|
}
|
|
if (rawGameLogs.length === 0) {
|
|
done = true;
|
|
}
|
|
}
|
|
return gameLogs;
|
|
}
|
|
|
|
async setDateTill(dateTill) {
|
|
await LogWatcher.SetDateTill(dateTill);
|
|
}
|
|
|
|
async reset() {
|
|
await LogWatcher.Reset();
|
|
}
|
|
}
|
|
|
|
var self = new GameLogService();
|
|
window.gameLogService = self;
|
|
|
|
export { self as default, GameLogService as LogWatcherService };
|