diff --git a/html/src/app.js b/html/src/app.js index 70b8f72f..f68044c6 100644 --- a/html/src/app.js +++ b/html/src/app.js @@ -10311,8 +10311,8 @@ speechSynthesis.getVoices(); if (!joinTime) { console.log(`${id} missing join time`); } - if (joinTime && joinTime + 40000 < dtNow) { - // wait 40secs for user to load in + if (joinTime && joinTime + 70000 < dtNow) { + // wait 70secs for user to load in hudTimeout.unshift({ userId: this.getUserIdFromPhotonId(id), displayName: this.getDisplayNameFromPhotonId(id), @@ -11002,15 +11002,17 @@ speechSynthesis.getVoices(); var emojiId = data.Parameters[245][2]; emojiName = this.photonEmojis[emojiId]; } else if (type === 1) { - emojiName = data.Parameters[245][1]; - imageUrl = `https://api.vrchat.cloud/api/1/file/${emojiName}/1/`; + emojiName = 'Custom'; + var fileId = data.Parameters[245][1]; + imageUrl = `https://api.vrchat.cloud/api/1/file/${fileId}/1/`; } this.addEntryPhotonEvent({ photonId, text: emojiName, type: 'SpawnEmoji', created_at: gameLogDate, - imageUrl + imageUrl, + fileId }); break; } @@ -12357,7 +12359,8 @@ speechSynthesis.getVoices(); bigIcon = 'ls_media'; } else if ( L.worldId === 'wrld_791ebf58-54ce-4d3a-a0a0-39f10e1b20b2' || - L.worldId === 'wrld_86a09fce-a34e-4deb-81be-53c843f97e98' + L.worldId === 'wrld_435bbf25-f34f-4b8b-82c6-cd809057eb8e' || + L.worldId === 'wrld_db9d878f-6e76-4776-8bf2-15bcdd7fc445' ) { appId = '1095440531821170820'; bigIcon = 'movie_and_chill'; @@ -12412,6 +12415,7 @@ speechSynthesis.getVoices(); $app.methods.updateAutoStateChange = function () { if ( + this.autoStateChange === 'Off' || !this.isGameRunning || !this.lastLocation.playerList.size || this.lastLocation.location === '' || @@ -14674,7 +14678,8 @@ speechSynthesis.getVoices(); 'wrld_1b68f7a8-8aea-4900-b7a2-3fc4139ac817', 'wrld_10e5e467-fc65-42ed-8957-f02cace1398c', 'wrld_791ebf58-54ce-4d3a-a0a0-39f10e1b20b2', - 'wrld_86a09fce-a34e-4deb-81be-53c843f97e98' + 'wrld_435bbf25-f34f-4b8b-82c6-cd809057eb8e', + 'wrld_db9d878f-6e76-4776-8bf2-15bcdd7fc445' ]; var L = API.parseLocation(location); if (rpcWorlds.includes(L.worldId)) { @@ -16107,6 +16112,10 @@ speechSynthesis.getVoices(); if (typeof friend.ref === 'undefined') { continue; } + if (friend.ref.location === this.lastLocation.location) { + // don't add friends to currentUser gameLog instance (except when traveling) + continue; + } if (friend.ref.$location.tag === L.tag) { if ( friend.state !== 'online' && @@ -16355,7 +16364,7 @@ speechSynthesis.getVoices(); isPC: false, isQuest: false, isIos: false, - avatarScaling: false, + avatarScalingDisabled: false, inCache: false, cacheSize: '', fileCreatedAt: '', @@ -16375,7 +16384,7 @@ speechSynthesis.getVoices(); isPC: false, isQuest: false, isIos: false, - avatarScaling: false, + avatarScalingDisabled: false, inCache: false, cacheSize: '', fileCreatedAt: '', @@ -16389,7 +16398,7 @@ speechSynthesis.getVoices(); isPC: false, isQuest: false, isIos: false, - avatarScaling: false, + avatarScalingDisabled: false, inCache: false, cacheSize: '', fileCreatedAt: '', @@ -16407,8 +16416,8 @@ speechSynthesis.getVoices(); this.currentInstanceWorld.isPC = isPC; this.currentInstanceWorld.isQuest = isQuest; this.currentInstanceWorld.isIos = isIos; - this.currentInstanceWorld.avatarScaling = - args.ref?.tags.includes('feature_avatar_scaling'); + this.currentInstanceWorld.avatarScalingDisabled = + args.ref?.tags.includes('feature_avatar_scaling_disabled'); this.checkVRChatCache(args.ref).then((cacheInfo) => { if (cacheInfo[0] > 0) { this.currentInstanceWorld.inCache = true; @@ -17031,7 +17040,7 @@ speechSynthesis.getVoices(); $location: {}, ref: {}, isFavorite: false, - avatarScaling: false, + avatarScalingDisabled: false, rooms: [], treeData: [], fileCreatedAt: '', @@ -17069,7 +17078,9 @@ speechSynthesis.getVoices(); return; } D.ref = ref; - D.avatarScaling = ref.tags?.includes('feature_avatar_scaling'); + D.avatarScalingDisabled = ref.tags?.includes( + 'feature_avatar_scaling_disabled' + ); $app.applyWorldDialogInstances(); for (var room of D.rooms) { if ($app.isRealInstance(room.tag)) { @@ -17176,7 +17187,7 @@ speechSynthesis.getVoices(); D.visitCount = ''; D.timeSpent = 0; D.isFavorite = false; - D.avatarScaling = false; + D.avatarScalingDisabled = false; D.isPC = false; D.isQuest = false; D.isIos = false; @@ -17233,8 +17244,8 @@ speechSynthesis.getVoices(); var { isPC, isQuest, isIos } = this.getAvailablePlatforms( args.ref.unityPackages ); - D.avatarScaling = args.ref?.tags.includes( - 'feature_avatar_scaling' + D.avatarScalingDisabled = args.ref?.tags.includes( + 'feature_avatar_scaling_disabled' ); D.isPC = isPC; D.isQuest = isQuest; @@ -17331,6 +17342,10 @@ speechSynthesis.getVoices(); ) { continue; } + if (ref.location === this.lastLocation.location) { + // don't add friends to currentUser gameLog instance (except when traveling) + continue; + } var { instanceId } = ref.$location; var instance = instances[instanceId]; if (typeof instance === 'undefined') { @@ -17479,6 +17494,10 @@ speechSynthesis.getVoices(); ) { continue; } + if (ref.location === this.lastLocation.location) { + // don't add friends to currentUser gameLog instance (except when traveling) + continue; + } var { instanceId, tag } = ref.$location; var instance = instances[tag]; if (typeof instance === 'undefined') { @@ -18752,7 +18771,7 @@ speechSynthesis.getVoices(); visible: false, tags: [], debugAllowed: false, - avatarScaling: false + avatarScalingDisabled: false }; $app.methods.showSetWorldTagsDialog = function () { @@ -18768,8 +18787,8 @@ speechSynthesis.getVoices(); if (tag === 'debug_allowed') { D.debugAllowed = true; } - if (tag === 'feature_avatar_scaling') { - D.avatarScaling = true; + if (tag === 'feature_avatar_scaling_disabled') { + D.avatarScalingDisabled = true; } }); D.tags = tags.toString(); @@ -18787,8 +18806,8 @@ speechSynthesis.getVoices(); if (D.debugAllowed) { tags.unshift('debug_allowed'); } - if (D.avatarScaling) { - tags.unshift('feature_avatar_scaling'); + if (D.avatarScalingDisabled) { + tags.unshift('feature_avatar_scaling_disabled'); } API.saveWorld({ id: this.worldDialog.id, @@ -22120,34 +22139,41 @@ speechSynthesis.getVoices(); if (!this.relaunchVRChatAfterCrash) { return; } - var lastLocation = this.lastLocation.location; - var desktopMode = this.isGameNoVR; + var { location } = this.lastLocation; AppApi.VrcClosedGracefully().then((result) => { - if (result || !this.isRealInstance(lastLocation)) { + if (result || !this.isRealInstance(location)) { return; } - if (!desktopMode && !this.isSteamVRRunning) { - console.log("SteamVR isn't running, not relaunching VRChat"); - return; - } - AppApi.FocusWindow(); - var message = 'VRChat crashed, attempting to rejoin last instance'; - this.$message({ - message, - type: 'info' - }); - var entry = { - created_at: new Date().toJSON(), - type: 'Event', - data: message - }; - database.addGamelogEventToDatabase(entry); - this.queueGameLogNoty(entry); - this.addGameLog(entry); - this.launchGame(lastLocation, '', desktopMode); + // wait a bit for SteamVR to potentially close before deciding to relaunch + workerTimers.setTimeout( + () => this.restartCrashedGame(location), + 1000 + ); }); }; + $app.methods.restartCrashedGame = function (location) { + if (!this.isGameNoVR && !this.isSteamVRRunning) { + console.log("SteamVR isn't running, not relaunching VRChat"); + return; + } + AppApi.FocusWindow(); + var message = 'VRChat crashed, attempting to rejoin last instance'; + this.$message({ + message, + type: 'info' + }); + var entry = { + created_at: new Date().toJSON(), + type: 'Event', + data: message + }; + database.addGamelogEventToDatabase(entry); + this.queueGameLogNoty(entry); + this.addGameLog(entry); + this.launchGame(location, '', this.isGameNoVR); + }; + $app.data.VRChatUsedCacheSize = ''; $app.data.VRChatTotalCacheSize = ''; $app.data.VRChatCacheSizeLoading = false; @@ -22852,13 +22878,14 @@ speechSynthesis.getVoices(); ) { downloadUrl = asset.browser_download_url; size = asset.size; - break; + continue; } if ( asset.name === 'SHA256SUMS.txt' && asset.content_type === 'text/plain' ) { hashUrl = asset.browser_download_url; + continue; } } if (!downloadUrl) { @@ -22994,13 +23021,14 @@ speechSynthesis.getVoices(); ) { downloadUrl = asset.browser_download_url; size = asset.size; - break; + continue; } if ( asset.name === 'SHA256SUMS.txt' && asset.content_type === 'text/plain' ) { hashUrl = asset.browser_download_url; + continue; } } if (!downloadUrl) { @@ -27108,12 +27136,7 @@ speechSynthesis.getVoices(); $app.methods.showChangeLogDialog = function () { this.$nextTick(() => adjustDialogZ(this.$refs.changeLogDialog.$el)); this.changeLogDialog.visible = true; - if ( - typeof this.VRCXUpdateDialog.updateJson === 'object' && - Object.keys(this.VRCXUpdateDialog.updateJson).length === 0 - ) { - this.checkForVRCXUpdate(); - } + this.checkForVRCXUpdate(); }; $app.data.gallerySelectDialog = { diff --git a/html/src/index.pug b/html/src/index.pug index e41afaf3..177c8d1f 100644 --- a/html/src/index.pug +++ b/html/src/index.pug @@ -570,7 +570,7 @@ html el-tag.x-tag-platform-pc(v-if="worldDialog.isPC" type="info" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") PC el-tag.x-tag-platform-quest(v-if="worldDialog.isQuest" type="info" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") Quest el-tag.x-tag-platform-ios(v-if="worldDialog.isIos" type="info" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") iOS - el-tag(v-if="worldDialog.avatarScaling" type="info" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.world.tags.avatar_scaling') }} + el-tag(v-if="worldDialog.avatarScalingDisabled" type="warning" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.world.tags.avatar_scaling_disabled') }} el-tag(type="info" effect="plain" size="mini" v-text="worldDialog.fileSize" style="margin-right:5px;margin-top:5px") el-tag(v-if="worldDialog.inCache" type="info" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") span(v-text="worldDialog.cacheSize") @@ -1036,6 +1036,18 @@ html .detail span.name(v-text="user.user.displayName" :style="{'color':user.user.$userColour}") span.extra + template(v-if="hasGroupPermission(groupDialog.ref, 'group-members-manage')") + el-tooltip(v-if="user.isRepresenting" placement="top" :content="$t('dialog.group.members.representing')") + i.el-icon-collection-tag(style="margin-right:5px") + el-tooltip(v-if="user.visibility !== 'visible'" placement="top") + template(#content) + span {{ $t('dialog.group.members.visibility') }} {{ user.visibility }} + i.el-icon-view(style="margin-right:5px") + el-tooltip(v-if="!user.isSubscribedToAnnouncements" placement="top" :content="$t('dialog.group.members.unsubscribed_announcements')") + i.el-icon-chat-line-square(style="margin-right:5px") + template(v-for="roleId in user.roleIds" :key="roleId") + span(v-text="groupDialog.ref.roles.find(role => role.id === roleId).name") + span(v-if="user.roleIds.indexOf(roleId) < user.roleIds.length - 1") ,  .x-friend-item(v-if="!isGroupMembersDone" v-loading="isGroupMembersLoading" style="width:100%;height:45px;text-align:center" @click="loadMoreGroupMembers") .detail(v-if="!isGroupMembersLoading") span.name {{ $t('dialog.group.members.load_more') }} @@ -1374,7 +1386,7 @@ html //- dialog: Set World Tags el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="setWorldTagsDialog" :visible.sync="setWorldTagsDialog.visible" :title="$t('dialog.set_world_tags.header')" width="400px") - el-checkbox(v-model="setWorldTagsDialog.avatarScaling") {{ $t('dialog.set_world_tags.avatar_scaling') }} + el-checkbox(v-model="setWorldTagsDialog.avatarScalingDisabled") {{ $t('dialog.set_world_tags.avatar_scaling_disabled') }} el-checkbox(v-model="setWorldTagsDialog.debugAllowed") {{ $t('dialog.set_world_tags.enable_debugging') }} div(style='font-size:12px;margin-top:10px') | {{ $t('dialog.set_world_tags.seprator') }} #[br] diff --git a/html/src/localization/strings/en.json b/html/src/localization/strings/en.json index 0b19acc9..9c5c727a 100644 --- a/html/src/localization/strings/en.json +++ b/html/src/localization/strings/en.json @@ -213,8 +213,8 @@ }, "automation": { "header": "Automation", - "auto_state_change": "Auto State Change", - "auto_state_change_tooltip": "Automatically change state when there are other people in instance", + "auto_state_change": "Auto Status Change", + "auto_state_change_tooltip": "Automatically change status when there are other people in the instance (Alone / Company)", "auto_state_change_off": "Off", "auto_state_change_active_or_ask_me": "Active / Ask Me", "auto_state_change_active_or_busy": "Active / Busy", @@ -619,7 +619,7 @@ "tags": { "public": "Public", "private": "Private", - "avatar_scaling": "Avatar Scaling", + "avatar_scaling_disabled": "Avatar Scaling Disabled", "labs": "Labs", "cache": "Cache" }, @@ -797,7 +797,10 @@ "filters": { "everyone": "Everyone", "users_with_no_role": "Users With No Role" - } + }, + "unsubscribed_announcements": "Unsubscribed from announcements", + "visibility": "Visibility:", + "representing": "Representing" }, "gallery": { "header": "Photos" @@ -913,7 +916,7 @@ }, "set_world_tags": { "header": "Set World Tags", - "avatar_scaling": "Avatar Scaling", + "avatar_scaling_disabled": "Avatar Scaling Disabled", "enable_debugging": "Enable world debugging for others", "seprator": "Enter tags comma separated", "cancel": "Cancel", diff --git a/html/src/mixins/tabs/playerList.pug b/html/src/mixins/tabs/playerList.pug index 069d595c..2f0746c3 100644 --- a/html/src/mixins/tabs/playerList.pug +++ b/html/src/mixins/tabs/playerList.pug @@ -18,7 +18,7 @@ mixin playerListTab() el-tag.x-tag-platform-pc(v-if="currentInstanceWorld.isPC" type="info" effect="plain" size="mini" style="margin-right:5px") PC el-tag.x-tag-platform-quest(v-if="currentInstanceWorld.isQuest" type="info" effect="plain" size="mini" style="margin-right:5px") Quest el-tag.x-tag-platform-ios(v-if="currentInstanceWorld.isIOS" type="info" effect="plain" size="mini" style="margin-right:5px") iOS - el-tag(v-if="currentInstanceWorld.avatarScaling" type="info" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.world.tags.avatar_scaling') }} + el-tag(v-if="currentInstanceWorld.avatarScalingDisabled" type="warning" effect="plain" size="mini" style="margin-right:5px;margin-top:5px") {{ $t('dialog.world.tags.avatar_scaling_disabled') }} el-tag(type="info" effect="plain" size="mini" v-text="currentInstanceWorld.fileSize" style="margin-right:5px") el-tag(v-if="currentInstanceWorld.inCache" type="info" effect="plain" size="mini" style="margin-right:5px") span(v-text="currentInstanceWorld.cacheSize") @@ -121,7 +121,7 @@ mixin playerListTab() el-tooltip(placement="right") template(#content) img.friends-list-avatar(v-lazy="scope.row.imageUrl" style="height:500px;cursor:pointer" @click="downloadAndSaveImage(scope.row.imageUrl)") - span(v-text="scope.row.text") + span(v-text="scope.row.fileId") span(v-else v-text="scope.row.text") span(v-else-if="scope.row.color === 'yellow'" v-text="scope.row.text" style="color:yellow") span(v-else v-text="scope.row.text") @@ -192,7 +192,7 @@ mixin playerListTab() el-tooltip(placement="right") template(#content) img.friends-list-avatar(v-lazy="scope.row.imageUrl" style="height:500px;cursor:pointer" @click="downloadAndSaveImage(scope.row.imageUrl)") - span(v-text="scope.row.text") + span(v-text="scope.row.fileId") span(v-else v-text="scope.row.text") span(v-else-if="scope.row.color === 'yellow'" v-text="scope.row.text" style="color:yellow") span(v-else v-text="scope.row.text") diff --git a/html/src/mixins/tabs/settings.pug b/html/src/mixins/tabs/settings.pug index 5272a801..9ffbd9d4 100644 --- a/html/src/mixins/tabs/settings.pug +++ b/html/src/mixins/tabs/settings.pug @@ -101,7 +101,7 @@ mixin settingsTab() div.options-container(style="margin-top:45px;border-top:1px solid #eee;padding-top:30px") span.header {{ $t("view.settings.general.legal_notice.header" )}} div.options-container-item - p © 2019-2022 #[a.x-link(@click="openExternalLink('https://github.com/pypy-vrc')") pypy] (mina#5656) & #[a.x-link(@click="openExternalLink('https://github.com/Natsumi-sama')") Natsumi] + p © 2019-2023 #[a.x-link(@click="openExternalLink('https://github.com/pypy-vrc')") pypy] (mina#5656) & #[a.x-link(@click="openExternalLink('https://github.com/Natsumi-sama')") Natsumi] p {{ $t("view.settings.general.legal_notice.info" )}} p {{ $t("view.settings.general.legal_notice.disclaimer1" )}} p {{ $t("view.settings.general.legal_notice.disclaimer2" )}}