diff --git a/Installer/installer.nsi b/Installer/installer.nsi index 37d32aa3..241a3c10 100644 --- a/Installer/installer.nsi +++ b/Installer/installer.nsi @@ -87,7 +87,9 @@ Function .onInit Pop $R1 ${If} $R1 = 0 MessageBox MB_OK|MB_ICONEXCLAMATION "VRCX is still running. Cannot install this software.$\nPlease close VRCX and try again." /SD IDOK - Abort + ${IfNot} ${Silent} + Abort + ${EndIf} ${EndIf} MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "VRCX is already installed. $\n$\nClick `OK` to upgrade the existing installation or `Cancel` to cancel this upgrade." /SD IDOK IDCANCEL cancel diff --git a/LogWatcher.cs b/LogWatcher.cs index 4bdb7580..51b10d5e 100644 --- a/LogWatcher.cs +++ b/LogWatcher.cs @@ -193,6 +193,7 @@ namespace VRCX if (line.Length <= 36 || line[31] != '-') { + ParseDesktopMode(fileInfo, line); continue; } @@ -445,17 +446,17 @@ namespace VRCX // 2021.07.19 04:24:28 Log - [Behaviour] Will execute SendRPC/AlwaysBufferOne on (Clone [100004] Portals/PortalInternalDynamic) (UnityEngine.GameObject) for Natsumi-sama: S: "ConfigurePortal" I: 7 F: 0 B: 255 (local master owner) // 2022.07.29 18:40:37 Log - [Behaviour] Instantiated a (Clone [800004] Portals/PortalInternalDynamic) - if (!line.Contains("] Portals/PortalInternalDynamic)")) - return false; - - AppendLog(new[] + if (line.Contains("[Behaviour] Instantiated a (Clone [") && line.Contains("] Portals/PortalInternalDynamic)")) { - fileInfo.Name, - ConvertLogTimeToISO8601(line), - "portal-spawn" - }); - - return true; + AppendLog(new[] + { + fileInfo.Name, + ConvertLogTimeToISO8601(line), + "portal-spawn" + }); + return true; + } + return false; } private bool ParseLogShaderKeywordsLimit(FileInfo fileInfo, LogContext logContext, string line, int offset) @@ -864,6 +865,21 @@ namespace VRCX return true; } + private void ParseDesktopMode(FileInfo fileInfo, string line) + { + // XR Device: None + + if (string.Compare(line, 0, " XR Device: None", 0, 19, StringComparison.Ordinal) != 0) + return; + + AppendLog(new[] + { + fileInfo.Name, + ConvertLogTimeToISO8601(line), + "desktop-mode" + }); + } + public string[][] Get() { Update(); diff --git a/html/src/app.js b/html/src/app.js index 808eec7c..3beda66c 100644 --- a/html/src/app.js +++ b/html/src/app.js @@ -4277,7 +4277,7 @@ speechSynthesis.getVoices(); API.currentUser.$online_for = Date.now(); API.currentUser.$offline_for = ''; } else { - this.isGameNoVR = true; + this.isGameNoVR = false; configRepository.setBool( 'isGameNoVR', this.isGameNoVR @@ -8169,14 +8169,7 @@ speechSynthesis.getVoices(); database.addGamelogJoinLeaveToDatabase(entry); break; case 'portal-spawn': - var bias = Date.parse($app.lastLocation.date) + 30 * 1000; - if ( - (this.ipcEnabled && this.isGameRunning) || - !this.lastLocation.location || - bias < Date.now() - ) { - console.log('ignored portal spawn'); - // 30sec wait for world portals to load + if (this.ipcEnabled && this.isGameRunning) { return; } var entry = { @@ -8288,12 +8281,14 @@ speechSynthesis.getVoices(); AppApi.QuitGame().then((processCount) => { if (processCount > 1) { console.log( - 'More than 1 process running, not killing VRC' + 'QuitFix: More than 1 process running, not killing VRC' ); } else if (processCount === 1) { - console.log('Killed VRC'); + console.log('QuitFix: Killed VRC'); } else { - console.log('Nothing to kill, no VRC process running'); + console.log( + 'QuitFix: Nothing to kill, no VRC process running' + ); } }); break; @@ -8301,6 +8296,10 @@ speechSynthesis.getVoices(); this.isGameNoVR = false; configRepository.setBool('isGameNoVR', this.isGameNoVR); break; + case 'desktop-mode': + this.isGameNoVR = true; + configRepository.setBool('isGameNoVR', this.isGameNoVR); + break; } if (entry) { this.queueGameLogNoty(entry); @@ -13632,6 +13631,25 @@ speechSynthesis.getVoices(); }; $app.methods.lookupAvatars = async function (type, search) { + if ( + this.avatarRemoteDatabaseProvider === + 'https://requi.dev/vrcx_search.php' + ) { + this.$alert( + 'ReMod remote avatar search has been shutdown due to EAC more info here: https://requi.dev/vrcx_search.php', + 'Remote avatar search' + ); + this.avatarRemoteDatabaseProvider = ''; + configRepository.setString( + 'VRCX_avatarRemoteDatabaseProvider', + this.avatarRemoteDatabaseProvider + ); + this.avatarRemoteDatabase = false; + configRepository.setBool( + 'VRCX_avatarRemoteDatabase', + this.avatarRemoteDatabase + ); + } if (type === 'search') { var limit = '&n=5000'; } else { diff --git a/html/src/index.pug b/html/src/index.pug index cdb3dd71..837f40eb 100644 --- a/html/src/index.pug +++ b/html/src/index.pug @@ -2291,7 +2291,7 @@ html el-button(type="primary" size="small" style="margin-left:auto" @click="notificationPositionDialog.visible = false") OK //- dialog: Noty feed filters - el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="notyFeedFiltersDialog" :visible.sync="notyFeedFiltersDialog.visible" title="Notification Filters" width="500px") + el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="notyFeedFiltersDialog" :visible.sync="notyFeedFiltersDialog.visible" title="Notification Filters" width="550px") .toggle-list .toggle-item span.toggle-name OnPlayerJoining @@ -2473,7 +2473,7 @@ html el-button(type="primary" size="small" style="margin-left:10px" @click="saveSharedFeedFilters") Save //- dialog: wrist feed filters - el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="wristFeedFiltersDialog" :visible.sync="wristFeedFiltersDialog.visible" title="Wrist Feed Filters" width="500px") + el-dialog.x-dialog(:before-close="beforeDialogClose" @mousedown.native="dialogMouseDown" @mouseup.native="dialogMouseUp" ref="wristFeedFiltersDialog" :visible.sync="wristFeedFiltersDialog.visible" title="Wrist Feed Filters" width="550px") .toggle-list .toggle-item span.toggle-name Self Location diff --git a/html/src/service/gamelog.js b/html/src/service/gamelog.js index 9030d02e..e3f861cc 100644 --- a/html/src/service/gamelog.js +++ b/html/src/service/gamelog.js @@ -64,6 +64,9 @@ class GameLogService { case 'openvr-init': break; + case 'desktop-mode': + break; + default: break; }