diff --git a/html/src/app.js b/html/src/app.js
index c3f26975..83af6b20 100644
--- a/html/src/app.js
+++ b/html/src/app.js
@@ -8796,6 +8796,7 @@ speechSynthesis.getVoices();
var args = await API.getCachedWorld({
worldId: L.worldId
});
+ this.portalDownloadWorldCache(args.ref, ref);
this.addPhotonEventToGameLog({
created_at,
type: 'PortalSpawn',
@@ -10888,6 +10889,9 @@ speechSynthesis.getVoices();
$app.data.worldAutoCacheGPSFilter = configRepository.getBool(
'VRCX_worldAutoCacheGPSFilter'
);
+ $app.data.portalAutoCache = configRepository.getString(
+ 'VRCX_portalAutoCache'
+ );
$app.data.autoSweepVRChatCache = configRepository.getBool(
'VRCX_autoSweepVRChatCache'
);
@@ -10952,6 +10956,10 @@ speechSynthesis.getVoices();
'VRCX_worldAutoCacheGPSFilter',
this.worldAutoCacheGPSFilter
);
+ configRepository.setString(
+ 'VRCX_portalAutoCache',
+ this.portalAutoCache
+ );
configRepository.setBool(
'VRCX_autoSweepVRChatCache',
this.autoSweepVRChatCache
@@ -11129,6 +11137,13 @@ speechSynthesis.getVoices();
$app.data.worldAutoCacheGPS
);
}
+ if (!configRepository.getString('VRCX_portalAutoCache')) {
+ $app.data.portalAutoCache = 'Off';
+ configRepository.setString(
+ 'VRCX_portalAutoCache',
+ $app.data.portalAutoCache
+ );
+ }
if (!configRepository.getBool('VRCX_vrBackgroundEnabled')) {
$app.data.vrBackgroundEnabled = false;
configRepository.setBool(
@@ -17248,6 +17263,18 @@ speechSynthesis.getVoices();
}
};
+ $app.methods.portalDownloadWorldCache = function (worldRef, userRef) {
+ var isFriend = this.friends.has(userRef.id);
+ var isFavorite = API.cachedFavoritesByObjectId.has(userRef.id);
+ if (
+ this.portalAutoCache === 'Everyone' ||
+ (this.portalAutoCache === 'Friends' && isFriend) ||
+ (this.portalAutoCache === 'VIP' && isFavorite)
+ ) {
+ this.autoDownloadWorldCache(worldRef.id, 'Portal', userRef.id);
+ }
+ };
+
$app.methods.feedDownloadWorldCache = function (id, location) {
if (
this.worldAutoCacheGPS === 'Always' ||
@@ -17341,6 +17368,20 @@ speechSynthesis.getVoices();
type: 'success'
});
}
+ if (
+ this.isGameRunning &&
+ (this.downloadCurrent.type === 'Invite' ||
+ this.downloadCurrent.type === 'Portal')
+ ) {
+ var entry = {
+ created_at: new Date().toJSON(),
+ type: 'Event',
+ data: `World finished caching ${this.downloadCurrent.ref.name}`
+ };
+ this.queueGameLogNoty(entry);
+ this.addGameLog(entry);
+ database.addGamelogEventToDatabase(entry);
+ }
this.downloadCurrent.status = 'Success';
this.downloadCurrent.date = Date.now();
this.downloadHistoryTable.data.unshift(this.downloadCurrent);
@@ -17398,6 +17439,20 @@ speechSynthesis.getVoices();
type: 'warning'
});
}
+ if (
+ this.isGameRunning &&
+ (this.downloadCurrent.type === 'Invite' ||
+ this.downloadCurrent.type === 'Portal')
+ ) {
+ var entry = {
+ created_at: new Date().toJSON(),
+ type: 'Event',
+ data: `World already in cache ${this.downloadCurrent.ref.name}`
+ };
+ this.queueGameLogNoty(entry);
+ this.addGameLog(entry);
+ database.addGamelogEventToDatabase(entry);
+ }
this.downloadCurrent.status = 'Already in cache';
this.downloadCurrent.date = Date.now();
this.downloadHistoryTable.data.unshift(this.downloadCurrent);
diff --git a/html/src/index.pug b/html/src/index.pug
index c8cf6191..4976af27 100644
--- a/html/src/index.pug
+++ b/html/src/index.pug
@@ -600,7 +600,7 @@ html
template(v-once #default="scope")
template(v-if="scope.row.details && scope.row.details.imageUrl")
el-popover(placement="right" width="500px" trigger="click")
- img.x-link(slot="reference" v-lazy="scope.row.details.imageUrl" style="flex:none;height:60px;border-radius:4px")
+ img.x-link(slot="reference" v-lazy="scope.row.details.imageUrl" style="flex:none;width:90px;border-radius:4px")
img.x-link(v-lazy="scope.row.details.imageUrl" style="width:500px" @click="openExternalLink(scope.row.details.imageUrl)")
el-table-column(label="Message" prop="message")
template(v-once #default="scope")
@@ -1066,7 +1066,7 @@ html
el-radio-button(label="Game Running")
el-radio-button(label="Always")
div.options-container-item
- el-switch(v-model="worldAutoCacheInviteFilter" @change="saveOpenVROption" inactive-text="VIP" active-text="Everyone" :disabled="worldAutoCacheInvite === 'Never'")
+ el-switch(v-model="worldAutoCacheInviteFilter" @change="saveOpenVROption" inactive-text="VIP" active-text="Friends" :disabled="worldAutoCacheInvite === 'Never'")
div.options-container-item
span.name Download on GPS:
br
@@ -1076,7 +1076,15 @@ html
el-radio-button(label="Game Running")
el-radio-button(label="Always")
div.options-container-item
- el-switch(v-model="worldAutoCacheGPSFilter" @change="saveOpenVROption" inactive-text="VIP" active-text="Everyone" :disabled="worldAutoCacheGPS === 'Never'")
+ el-switch(v-model="worldAutoCacheGPSFilter" @change="saveOpenVROption" inactive-text="VIP" active-text="Friends" :disabled="worldAutoCacheGPS === 'Never'")
+ div.options-container-item(v-if="photonLoggingEnabled")
+ span.name Download on PortalSpawn:
+ br
+ el-radio-group(v-model="portalAutoCache" @change="saveOpenVROption" size="mini")
+ el-radio-button(label="Off")
+ el-radio-button(label="VIP")
+ el-radio-button(label="Friends")
+ el-radio-button(label="Everyone")
div.options-container-item
el-button(size="small" icon="el-icon-download" @click="showDownloadDialog") Download History
br