Updates and fixes

This commit is contained in:
Natsumi
2022-01-25 21:39:47 +13:00
parent 85373b9032
commit 6e80180763
4 changed files with 112 additions and 45 deletions

View File

@@ -110,7 +110,7 @@ speechSynthesis.getVoices();
this.Set(key, JSON.stringify(value));
};
setInterval(function () {
workerTimers.setInterval(function () {
VRCXStorage.Flush();
}, 5 * 60 * 1000);
@@ -3966,7 +3966,7 @@ speechSynthesis.getVoices();
}
});
setInterval(function () {
workerTimers.setInterval(function () {
for (var $timer of $timers) {
$timer.update();
}
@@ -4024,7 +4024,7 @@ speechSynthesis.getVoices();
}
});
setInterval(function () {
workerTimers.setInterval(function () {
for (var $countDownTimer of $countDownTimers) {
$countDownTimer.update();
}
@@ -7606,7 +7606,6 @@ speechSynthesis.getVoices();
this.moderationEventQueue = new Map();
this.lastPortalId = '';
this.lastPortalList = new Map();
this.portalQueue = '';
if (this.photonEventTable.data.length > 0) {
this.photonEventTablePrevious.data = this.photonEventTable.data;
this.photonEventTable.data = [];
@@ -7988,20 +7987,7 @@ speechSynthesis.getVoices();
database.addGamelogJoinLeaveToDatabase(entry);
break;
case 'portal-spawn':
if (this.portalQueue === 'skip') {
this.portalQueue = '';
return;
} else if (this.portalQueue && gameLog.userDisplayName) {
var ref = {
id: userId,
displayName: gameLog.userDisplayName
};
this.parsePhotonPortalSpawn(
gameLog.dt,
this.portalQueue,
ref
);
this.portalQueue = '';
if (this.ipcEnabled && this.isGameRunning) {
return;
}
var entry = {
@@ -8101,7 +8087,6 @@ speechSynthesis.getVoices();
'https://gist.github.com/Natsumi-sama/d280a58f08ace3da0e8fc7a9a381d44e';
$app.data.lastPortalId = '';
$app.data.lastPortalList = new Map();
$app.data.portalQueue = '';
$app.data.moderationEventQueue = new Map();
$app.data.moderationAgainstTable = [];
$app.data.photonLobby = new Map();
@@ -8750,14 +8735,11 @@ speechSynthesis.getVoices();
id: this.getUserIdFromPhotonId(senderId),
displayName
};
this.portalQueue = 'skip';
this.parsePhotonPortalSpawn(
gameLogDate,
instanceId,
ref1
);
} else {
this.portalQueue = instanceId;
}
return;
} else if (eventData.Type > 34) {
@@ -8794,11 +8776,9 @@ speechSynthesis.getVoices();
} else {
var eventVrc = '';
if (eventData.Data) {
if (Array.isArray(eventData.Data)) {
eventVrc = ` ${eventData.Data.toString()}`;
} else {
eventVrc = ` ${eventData.Data}`;
}
eventVrc = ` ${JSON.stringify(
eventData.Data
).replace(/"([^(")"]+)":/g, '$1:')}`;
}
var text = `${eventData.EventType}${eventVrc}`;
}
@@ -9128,9 +9108,14 @@ speechSynthesis.getVoices();
oldAvatarId !== avatar.id &&
user.id !== API.currentUser.id
) {
var entry = {
created_at: new Date().toJSON(),
type: 'AvatarChange',
this.checkVRChatCache(avatar).then((cacheInfo) => {
var inCache = false;
if (cacheInfo[0] > 0) {
inCache = true;
}
var entry = {
created_at: new Date().toJSON(),
type: 'AvatarChange',
userId: user.id,
displayName: user.displayName,
name: avatar.name,
@@ -9146,10 +9131,12 @@ speechSynthesis.getVoices();
this.addEntryPhotonEvent({
photonId,
displayName: user.displayName,
userId: user.id,
text: `ChangeAvatar ${avatar.name}`,
created_at: gameLogDate,
avatar
userId: user.id,
text: `ChangeAvatar ${avatar.name}`,
created_at: gameLogDate,
avatar,
inCache
});
});
}
this.photonLobbyAvatars.set(user.id, avatar.id);
@@ -9184,7 +9171,7 @@ speechSynthesis.getVoices();
var videoName = '';
var videoLength = '';
var displayName = '';
var videoPos = 10; // video loading delay
var videoPos = 8; // video loading delay
if (typeof gameLog.displayName !== 'undefined') {
displayName = gameLog.displayName;
}
@@ -17305,6 +17292,69 @@ speechSynthesis.getVoices();
this.downloadVRChatCacheProgress();
};
$app.methods.downloadVRChatCacheOldVersion = async function (
worldId,
oldAssetUrl
) {
var args = await API.getWorld({worldId});
var ref = args.json;
var latestAssetUrl = '';
for (var i = ref.unityPackages.length - 1; i > -1; i--) {
var unityPackage = ref.unityPackages[i];
if (
unityPackage.platform === 'standalonewindows' &&
this.compareUnityVersion(unityPackage.unityVersion) &&
!latestAssetUrl
) {
latestAssetUrl = unityPackage.assetUrl;
break;
}
}
if (latestAssetUrl === oldAssetUrl) {
console.log('File version is latest');
return;
}
var fileId = extractFileId(latestAssetUrl);
var fileVersion = parseInt(extractFileVersion(latestAssetUrl), 10);
var oldFileId = extractFileId(oldAssetUrl);
var oldFileVersion = parseInt(extractFileVersion(oldAssetUrl), 10);
if (!fileId) {
console.log('latestFileId invalid asset url');
return;
}
if (!oldFileId) {
console.log('oldFileId invalid asset url');
return;
}
var args = await API.getBundles(oldFileId);
var {versions} = args.json;
var file = '';
for (var i = versions.length - 1; i > -1; i--) {
var version = versions[i];
if (version.version === oldFileVersion) {
file = version.file;
break;
}
}
if (!file) {
console.log('Missing asset version');
return;
}
var {url, md5, sizeInBytes} = file;
var cacheDir = await this.getVRChatCacheDir();
await AssetBundleCacher.DeleteCache(cacheDir, fileId, fileVersion);
await AssetBundleCacher.DownloadCacheFile(
cacheDir,
url,
fileId,
fileVersion,
sizeInBytes,
md5,
appVersion,
false
);
};
$app.methods.cancelVRChatCacheDownload = function (location) {
var L = API.parseLocation(location);
if (L.worldId) {
@@ -17465,7 +17515,8 @@ speechSynthesis.getVoices();
if (
this.isGameRunning &&
(this.downloadCurrent.type === 'Invite' ||
this.downloadCurrent.type === 'Portal')
this.downloadCurrent.type === 'Portal' ||
this.downloadCurrent.type === 'Manual')
) {
var entry = {
created_at: new Date().toJSON(),

View File

@@ -1551,7 +1551,7 @@ html
.x-friend-list(style="margin-top:10px;min-height:60px")
.x-friend-item(v-for="avatar in userDialogAvatars" @click="showAvatarDialog(avatar.id)" class="x-friend-item-border")
.avatar
img(v-lazy="avatar.thumbnailImageUrl")
img(v-if="avatar.thumbnailImageUrl" v-lazy="avatar.thumbnailImageUrl")
.detail
span.name(v-text="avatar.name")
span.extra(v-text="avatar.releaseStatus" v-if="avatar.releaseStatus === 'public'" style="color: #67c23a;")
@@ -2747,7 +2747,7 @@ html
span(v-text="scope.row.timer")
el-table-column(label="Action" width="60" align="right")
template(v-once #default="scope")
el-button(type="text" icon="el-icon-message" size="mini" @click="showLaunchDialog(scope.row.location)")
el-button(type="text" icon="el-icon-info" size="mini" @click="showLaunchDialog(scope.row.location)")
el-button(type="text" icon="el-icon-close" size="mini" @click="confirmDeleteGameLogUserInstance(scope.row)")
//- dialog Table: Previous Instances World

View File

@@ -564,7 +564,7 @@ Vue.component('marquee-text', MarqueeText);
};
$app.methods.addEntryHudFeed = function (json) {
var {displayName, text, color} = JSON.parse(json);
var {displayName, text, color, avatar, inCache} = JSON.parse(json);
var combo = 1;
this.hudFeed.forEach((item) => {
if (item.displayName === displayName && item.text === text) {
@@ -577,7 +577,9 @@ Vue.component('marquee-text', MarqueeText);
displayName,
text,
combo,
color
color,
avatar,
inCache
});
this.cleanHudFeed();
};

View File

@@ -132,7 +132,12 @@ html
.detail
span.extra
span.time {{ feed.created_at | formatDate }}
| 🧍 #[span.name(v-text="feed.displayName")] {{ feed.name }}
| 🧍 #[span.name(v-text="feed.displayName")]
template(v-if="feed.releaseStatus === 'public'")
| #[i.x-user-status.online]
template(v-else)
| #[i.x-user-status.askme]
| {{ feed.name }}
template(v-if="feed.description && feed.description !== feed.name")
| - {{ feed.description }}
div(v-else-if="feed.type === 'Event'" class="x-friend-item")
@@ -295,7 +300,12 @@ html
.detail
span.extra
span.time {{ feed.created_at | formatDate }}
| #[span.name(v-text="feed.displayName")] changed into avatar {{ feed.name }}
| #[span.name(v-text="feed.displayName")] changed into avatar
template(v-if="feed.releaseStatus === 'public'")
| #[i.x-user-status.online]
template(v-else)
| #[i.x-user-status.askme]
| {{ feed.name }}
template(v-if="feed.description && feed.description !== feed.name")
| - {{ feed.description }}
div(v-else-if="feed.type === 'Event'" class="x-friend-item")
@@ -418,10 +428,14 @@ html
.hud-feed
div(v-for="feed in hudFeed")
.item #[span(v-if="feed.isMaster") 👑]<strong>{{ feed.displayName }}</strong>
span(v-if="feed.color === 'yellow'" style="color: yellow") {{ feed.text }}
span(v-else) {{ feed.text }}
span(v-if="feed.avatar")
span(style="margin-left:10px") ChangeAvatar
span(v-if="!feed.inCache" style="color:#aaa;margin-left:10px") #[i.el-icon-download]
span(v-text="feed.avatar.name" style="margin-left:10px")
span(v-else-if="feed.color === 'yellow'" style="color:yellow;margin-left:10px") {{ feed.text }}
span(v-else style="margin-left:10px") {{ feed.text }}
template(v-if="feed.combo > 1")
span.combo x{{ feed.combo }}
span.combo(style="margin-left:10px") x{{ feed.combo }}
.hud-timeout(v-if="hudTimeout.length > 0")
.hud-timeout-feed
div(v-for="feed in hudTimeout")