mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-14 04:13:52 +02:00
Updates and fixes
This commit is contained in:
123
html/src/app.js
123
html/src/app.js
@@ -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(),
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
};
|
||||
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user