[bugfix-821] Add error messages for Beat Saber uninstallation

This commit is contained in:
Zagrios
2025-03-22 20:29:20 +01:00
parent 011e9d1b04
commit 4435df2fd7
18 changed files with 158 additions and 16 deletions
+10
View File
@@ -701,6 +701,16 @@
"do-not-remind": "Nicht mehr daran erinnern",
"ok": "Ok"
}
},
"bs-uninstall": {
"errors": {
"title": "Version kann nicht deinstalliert werden",
"desc": {
"CantDeleteOfficialVersion": "BSManager kann die originale Beat Saber Version nicht deinstallieren",
"VersionNotFound": "Version nicht gefunden.",
"delete-folder": "Version kann nicht gelöscht werden. Stelle sicher, dass Beat Saber nicht läuft."
}
}
}
},
"modals": {
+10
View File
@@ -701,6 +701,16 @@
"do-not-remind": "Do not remind me",
"ok": "Ok"
}
},
"bs-uninstall": {
"errors": {
"title": "Unable to uninstall version",
"desc": {
"CantDeleteOfficialVersion": "BSManager cannot uninstall the original Beat Saber version",
"VersionNotFound": "Version not found.",
"delete-folder": "Unable to delete the version. Ensure Beat Saber is not running."
}
}
}
},
"modals": {
+10
View File
@@ -701,6 +701,16 @@
"do-not-remind": "No volver a recordármelo",
"ok": "Ok"
}
},
"bs-uninstall": {
"errors": {
"title": "No se puede desinstalar la versión",
"desc": {
"CantDeleteOfficialVersion": "BSManager no puede desinstalar la versión original de Beat Saber",
"VersionNotFound": "Versión no encontrada.",
"delete-folder": "No se puede eliminar la versión. Asegúrate de que Beat Saber no esté en marcha."
}
}
}
},
"modals": {
+10
View File
@@ -701,6 +701,16 @@
"do-not-remind": "Ne plus me rappeler",
"ok": "Ok"
}
},
"bs-uninstall": {
"errors": {
"title": "Impossible de désinstaller la version",
"desc": {
"CantDeleteOfficialVersion": "BSManager ne peut pas désinstaller la version originale de Beat Saber",
"VersionNotFound": "La version n'a pas été trouvée.",
"delete-folder": "Impossible de supprimer la version. Vérifiez que Beat Saber n'est pas en cours d'exécution."
}
}
}
},
"modals": {
+10
View File
@@ -701,6 +701,16 @@
"do-not-remind": "Non ricordarmelo più",
"ok": "Ok"
}
},
"bs-uninstall": {
"errors": {
"title": "Impossibile disinstallare la versione",
"desc": {
"CantDeleteOfficialVersion": "BSManager non può disinstallare la versione originale di Beat Saber",
"VersionNotFound": "Versione non trovata.",
"delete-folder": "Impossibile eliminare la versione. Assicurati che Beat Saber non sia in esecuzione."
}
}
}
},
"modals": {
+10
View File
@@ -701,6 +701,16 @@
"do-not-remind": "再度通知しない",
"ok": "OK"
}
},
"bs-uninstall": {
"errors": {
"title": "バージョンをアンインストールできません",
"desc": {
"CantDeleteOfficialVersion": "BSManagerはBeat Saberのオリジナルバージョンをアンインストールできません",
"VersionNotFound": "バージョンが見つかりません。",
"delete-folder": "バージョンを削除できません。Beat Saberが実行中でないことを確認してください。"
}
}
}
},
"modals": {
+10
View File
@@ -701,6 +701,16 @@
"do-not-remind": "다시 알리지 않기",
"ok": "확인"
}
},
"bs-uninstall": {
"errors": {
"title": "버전을 제거할 수 없습니다",
"desc": {
"CantDeleteOfficialVersion": "BSManager는 원본 Beat Saber 버전을 제거할 수 없습니다",
"VersionNotFound": "버전을 찾을 수 없습니다.",
"delete-folder": "버전을 삭제할 수 없습니다. Beat Saber가 실행 중이지 않은지 확인하세요."
}
}
}
},
"modals": {
+10
View File
@@ -701,6 +701,16 @@
"do-not-remind": "Não me lembrar novamente",
"ok": "Ok"
}
},
"bs-uninstall": {
"errors": {
"title": "Não é possível desinstalar a versão",
"desc": {
"CantDeleteOfficialVersion": "O BSManager não pode desinstalar a versão original do Beat Saber",
"VersionNotFound": "Versão não encontrada.",
"delete-folder": "Não foi possível deletar a versão. Certifique-se de que Beat Saber não está em execução."
}
}
}
},
"modals": {
+10
View File
@@ -701,6 +701,16 @@
"do-not-remind": "Больше не напоминать",
"ok": "Ок"
}
},
"bs-uninstall": {
"errors": {
"title": "Невозможно удалить версию",
"desc": {
"CantDeleteOfficialVersion": "BSManager не может удалить оригинальную версию Beat Saber",
"VersionNotFound": "Версия не найдена.",
"delete-folder": "Не удалось удалить версию. Убедитесь, что Beat Saber не запущен."
}
}
}
},
"modals": {
+10
View File
@@ -701,6 +701,16 @@
"do-not-remind": "Huwag akong paalalahanan",
"ok": "Ok"
}
},
"bs-uninstall": {
"errors": {
"title": "Hindi maalis ang bersyon",
"desc": {
"CantDeleteOfficialVersion": "Hindi maalis ng BSManager ang orihinal na bersyon ng Beat Saber",
"VersionNotFound": "Hindi nahanap ang bersyon.",
"delete-folder": "Hindi maalis ang bersyon. Tiyakin na ang Beat Saber ay hindi naka-run."
}
}
}
},
"modals": {
+10
View File
@@ -701,6 +701,16 @@
"do-not-remind": "Не нагадувати",
"ok": "Гаразд"
}
},
"bs-uninstall": {
"errors": {
"title": "Неможливо видалити версію",
"desc": {
"CantDeleteOfficialVersion": "BSManager не може видалити оригінальну версію Beat Saber",
"VersionNotFound": "Версія не знайдена.",
"delete-folder": "Не вдалося видалити версію. Переконайтеся, що Beat Saber не запущений."
}
}
}
},
"modals": {
+10
View File
@@ -701,6 +701,16 @@
"do-not-remind": "不要再提醒我",
"ok": "確定"
}
},
"bs-uninstall": {
"errors": {
"title": "無法卸載版本",
"desc": {
"CantDeleteOfficialVersion": "BSManager無法卸載Beat Saber的原始版本",
"VersionNotFound": "找不到版本。",
"delete-folder": "無法刪除版本。確保Beat Saber未運行。"
}
}
}
},
"modals": {
+10
View File
@@ -701,6 +701,16 @@
"do-not-remind": "不再提醒",
"ok": "确定"
}
},
"bs-uninstall": {
"errors": {
"title": "无法卸载版本",
"desc": {
"CantDeleteOfficialVersion": "BSManager无法卸载Beat Saber的原始版本",
"VersionNotFound": "未找到版本。",
"delete-folder": "无法删除版本。确保Beat Saber未运行。"
}
}
}
},
"modals": {
@@ -306,14 +306,12 @@ export class BSLocalVersionService {
return versions;
}
public async deleteVersion(version: BSVersion): Promise<boolean>{
if(version.steam || version.oculus){ return false; }
public async deleteVersion(version: BSVersion): Promise<void>{
if(version.steam || version.oculus){ throw new CustomError("BSManager is not able to delete official Beat Saber versions", "CantDeleteOfficialVersion"); }
const versionFolder = await this.getVersionPath(version);
if(!(await pathExists(versionFolder))){ return true; }
if(!(await pathExists(versionFolder))){ throw new CustomError("Version not found", "VersionNotFound"); }
return deleteFolder(versionFolder)
.then(() => { return true; })
.catch(() => { return false; })
return deleteFolder(versionFolder);
}
public async editVersion(version: BSVersion, name: string, color: string): Promise<BSVersion>{
@@ -16,6 +16,7 @@ import equal from "fast-deep-equal";
import { useOnUpdate } from "renderer/hooks/use-on-update.hook";
import { BsDownloaderService } from "renderer/services/bs-version-download/bs-downloader.service";
import { ProgressBarService } from "renderer/services/progress-bar.service";
import { noop } from "shared/helpers/function.helpers";
export function BsVersionItem(props: { version: BSVersion }) {
@@ -70,7 +71,7 @@ export function BsVersionItem(props: { version: BSVersion }) {
const wasVerification = bsDownloader.isVerifying;
bsDownloader.stopDownload().then(() => {
if(wasVerification){ return; }
bsUninstallerService.uninstall(versionDownload).then(res => res && verionManagerService.askInstalledVersions());
bsUninstallerService.uninstall(versionDownload).then(() => verionManagerService.askInstalledVersions()).catch(noop);
});
};
@@ -28,6 +28,7 @@ import { logRenderError } from "renderer";
import { BsModsManagerService } from "renderer/services/bs-mods-manager.service";
import { noop } from "shared/helpers/function.helpers";
import { useTranslationV2 } from "renderer/hooks/use-translation.hook";
import { CustomError } from "shared/models/exceptions/custom-error.class";
export function VersionViewer() {
@@ -125,13 +126,25 @@ export function VersionViewer() {
const uninstall = async () => {
const modalCompleted = await modalService.openModal(UninstallModal, { data: state });
if (modalCompleted.exitCode === ModalExitCode.COMPLETED) {
bsUninstallerService.uninstall(state).then(() => {
bsVersionManagerService.askInstalledVersions().then(versions => {
navigateToVersion(versions?.at(0));
});
});
if (modalCompleted.exitCode !== ModalExitCode.COMPLETED) {
return;
}
bsUninstallerService.uninstall(state).then(() => {
bsVersionManagerService.askInstalledVersions().then(versions => {
navigateToVersion(versions?.at(0));
});
}).catch((err: CustomError) => {
let desc = err?.message;
if (["CantDeleteOfficialVersion", "VersionNotFound"].includes(err?.code)) {
desc = `notifications.bs-uninstall.errors.desc.${err.code}`;
} else if (err?.code?.startsWith("generic.fs.delete-folder")) {
desc = "notifications.bs-uninstall.errors.desc.delete-folder";
}
notification.notifyError({ title: "notifications.bs-uninstall.errors.title", desc });
});
};
const edit = () => {
@@ -18,7 +18,7 @@ export class BSUninstallerService {
this.ipcService = IpcService.getInstance();
}
public uninstall(version: BSVersion): Promise<boolean> {
return lastValueFrom(this.ipcService.sendV2("bs.uninstall", version)).catch(() => false);
public uninstall(version: BSVersion): Promise<void> {
return lastValueFrom(this.ipcService.sendV2("bs.uninstall", version));
}
}
+1 -1
View File
@@ -103,7 +103,7 @@ export interface IpcChannelMapping {
"install-playlist-file": {request: {bplist: BPList, version?: BSVersion, dest?: string}, response: LocalBPListsDetails};
/* ** bs-uninstall-ipcs ** */
"bs.uninstall": { request: BSVersion, response: boolean };
"bs.uninstall": { request: BSVersion, response: void };
/* ** bs-version-ipcs ** */
"bs-version.get-version-dict": { request: void, response: BSVersion[] };