Compare commits

...

13 Commits

Author SHA1 Message Date
MathieuG-P f71c29da58 bumb to 1.4.5 2024-02-12 16:35:04 +01:00
Iluhadesu 60c656b45b Add 1.34.5 2024-02-12 16:04:28 +01:00
MathieuG-P bec8e1f571 Merge pull request #417 from slinkstr/bugfix/fpfc-restore/416
[bugfix-416] Wait for SteamVR folder rename before exit
2024-02-12 15:22:57 +01:00
MathieuG-P 20d0cd7ee6 Merge pull request #421 from Zagrios/bugfix/unable-to-launch-oculus-version-when-backup-already-exists
[bugfix] Fixed unable to launch downgraded oculus version when backup already exist
2024-02-12 14:30:55 +01:00
MathieuG-P 3f37c2ee34 [bugfix] Fixed unable to launch downgraded oculus version when backup already exists 2024-02-12 14:19:59 +01:00
slinky 0b24a5ceb2 [bugfix-416] Wait for SteamVR folder rename before exit 2024-02-08 11:55:57 -08:00
MathieuG-P 318a6b5afa add patreon 2024-02-06 22:30:08 +01:00
MathieuG-P c80685065e Merge pull request #415 from Zagrios/bugfix/cannot-launch-bs-steam-is-elevated-error
[bugfix] handle errors when cheking if steam is running as admin
2024-02-02 20:23:19 +01:00
MathieuG-P cdc589f602 [bugfix] handle error when cheking if steam is running as admin 2024-02-02 20:18:33 +01:00
MathieuG-P ee6acb7980 bumb to 1.4.4 2024-02-01 10:48:28 +01:00
MathieuG-P 515ef06589 add patreon 2024-01-27 20:12:10 +01:00
MathieuG-P 344cce9461 Merge pull request #412 from Zagrios/bugfix/regedit-rs-broke-linux-support/411
[bugfix-411] dynamically import regedit-rs depending on the os
2024-01-27 13:53:05 +01:00
MathieuG-P 536690dc55 [bugfix-411] dynamically import regedit-rs depending on the os 2024-01-27 13:46:44 +01:00
10 changed files with 52 additions and 15 deletions
+9
View File
@@ -681,5 +681,14 @@
"ReleaseImg": "https://clan.akamai.steamstatic.com/images/32055887/ae11d195bbe41a0f244d7b4d055a0ab89f88e5bb.png",
"ReleaseDate": "1702309893",
"year": "2023"
},
{
"BSVersion": "1.34.5",
"BSManifest": "7413405154512822201",
"OculusBinaryId": "6639053626194360",
"ReleaseURL": "https://steamcommunity.com/games/620980/announcements/detail/4036983137766828694",
"ReleaseImg": "https://clan.cloudflare.steamstatic.com/images/32055887/925e60f14c6815f7617fde11a894ed20f54a0846.png",
"ReleaseDate": "1707745958",
"year": "2024"
}
]
+10 -1
View File
@@ -68,7 +68,16 @@
"type": "diamond",
"link": "https://www.youtube.com/@lumberjack462"
},
{
{
"username": "Xero"
},
{
"username": "Minescence"
},
{
"username": "Finlay"
},
{
"username": "mereknom"
}
]
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "bs-manager",
"version": "1.4.3",
"version": "1.4.4",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "bs-manager",
"version": "1.4.3",
"version": "1.4.4",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "bs-manager",
"version": "1.4.4-alpha.2",
"version": "1.4.5",
"description": "BSManager",
"main": "./dist/main/main.js",
"author": {
+6 -2
View File
@@ -6,6 +6,7 @@ import { from } from "rxjs";
import { SteamLauncherService } from "../services/bs-launcher/steam-launcher.service";
import { OculusLauncherService } from "../services/bs-launcher/oculus-launcher.service";
import { SteamService } from "../services/steam.service";
import log from "electron-log";
import isElevated from "is-elevated";
const ipc = IpcService.getInstance();
@@ -19,9 +20,12 @@ ipc.on<boolean>("bs-launch.need-start-as-admin", (_, reply) => {
const steam = SteamService.getInstance();
reply(from(isElevated().then(elevated => {
if(elevated){ return false; }
return steam.isElevated();
return steam.isElevated().catch(e => {
log.error("Error while checking if Steam is running as admin", e);
return false;
});
})));
})
});
ipc.on<LaunchOption>("create-launch-shortcut", (req, reply) => {
const bsLauncher = BSLauncherService.getInstance();
@@ -11,6 +11,7 @@ import { AbstractLauncherService } from "./abstract-launcher.service";
import { taskRunning } from "../../helpers/os.helpers";
import { CustomError } from "../../../shared/models/exceptions/custom-error.class";
import { InstallationLocationService } from "../installation-location.service";
import { ensurePathNotAlreadyExist } from "../../helpers/fs.helpers";
export class OculusLauncherService extends AbstractLauncherService implements StoreLauncherInterface {
@@ -86,7 +87,7 @@ export class OculusLauncherService extends AbstractLauncherService implements St
private async backupOriginalBeatSaber(): Promise<void>{
const bsFolder = await this.oculus.getGameFolder(OCULUS_BS_DIR);
if(!bsFolder){ return; }
const backupPath = path.join(bsFolder, "..", OCULUS_BS_BACKUP_DIR);
const backupPath = await ensurePathNotAlreadyExist(path.join(bsFolder, "..", OCULUS_BS_BACKUP_DIR));
log.info("Backing up original Beat Saber", bsFolder, backupPath);
return rename(bsFolder, backupPath);
}
@@ -123,13 +123,16 @@ export class SteamLauncherService extends AbstractLauncherService implements Sto
})
);
await launchPromise.then(exitCode => {
try {
const exitCode = await launchPromise;
log.info("BS process exit code", exitCode);
}).catch(err => {
}
catch(err: any) {
throw CustomError.fromError(err, BSLaunchError.BS_EXIT_ERROR);
}).finally(() => {
this.restoreSteamVR().catch(log.error);
});
}
finally {
await this.restoreSteamVR().catch(log.error);
}
})().then(() => {
obs.complete();
+2 -1
View File
@@ -1,8 +1,9 @@
import { execOnOs } from "../../helpers/env.helpers";
import { list, createKey, putValue, deleteKey, RegSzValue } from "regedit-rs";
import path from "path";
import { Log } from "../../decorators/log.decorator";
const { list, createKey, putValue, deleteKey, RegSzValue } = (execOnOs({ win32: () => require("regedit-rs") }, true) ?? {}) as typeof import("regedit-rs");
export class LivService {
private static instance: LivService;
+3 -1
View File
@@ -1,4 +1,3 @@
import { list } from "regedit-rs";
import path from "path";
import { pathExist, resolveGUIDPath } from "../helpers/fs.helpers";
import log from "electron-log";
@@ -7,6 +6,9 @@ import { tryit } from "../../shared/helpers/error.helpers";
import { shell } from "electron";
import { taskRunning } from "../helpers/os.helpers";
import { sToMs } from "../../shared/helpers/time.helpers";
import { execOnOs } from "../helpers/env.helpers";
const { list } = (execOnOs({ win32: () => require("regedit-rs") }, true) ?? {}) as typeof import("regedit-rs");
export class OculusService {
private static instance: OculusService;
+9 -1
View File
@@ -1,4 +1,4 @@
import { list, RegDwordValue } from "regedit-rs"
import { RegDwordValue } from "regedit-rs"
import path from "path";
import { parse } from "@node-steam/vdf";
import { readFile } from "fs/promises";
@@ -7,6 +7,9 @@ import log from "electron-log";
import { app, shell } from "electron";
import { getProcessPid, taskRunning } from "../helpers/os.helpers";
import { isElevated } from "query-process";
import { execOnOs } from "../helpers/env.helpers";
const { list } = (execOnOs({ win32: () => require("regedit-rs") }, true) ?? {}) as typeof import("regedit-rs");
export class SteamService {
@@ -43,6 +46,11 @@ export class SteamService {
return getProcessPid(SteamService.PROCESS_NAME);
}
/**
* Check if the Steam process is running as administrator
* @throws Can throw an error if the Steam process is running as admin
* @returns true if the Steam process is running as administrator
*/
public async isElevated(): Promise<boolean>{
if(process.platform === "linux"){ return true; }
const steamPid = await this.getSteamPid();