mirror of
https://github.com/Zagrios/bs-manager.git
synced 2026-07-03 14:08:25 +02:00
[bugfix-821] Add error messages for Beat Saber uninstallation
This commit is contained in:
@@ -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": {
|
||||
|
||||
@@ -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": {
|
||||
|
||||
@@ -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": {
|
||||
|
||||
@@ -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": {
|
||||
|
||||
@@ -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": {
|
||||
|
||||
@@ -701,6 +701,16 @@
|
||||
"do-not-remind": "再度通知しない",
|
||||
"ok": "OK"
|
||||
}
|
||||
},
|
||||
"bs-uninstall": {
|
||||
"errors": {
|
||||
"title": "バージョンをアンインストールできません",
|
||||
"desc": {
|
||||
"CantDeleteOfficialVersion": "BSManagerはBeat Saberのオリジナルバージョンをアンインストールできません",
|
||||
"VersionNotFound": "バージョンが見つかりません。",
|
||||
"delete-folder": "バージョンを削除できません。Beat Saberが実行中でないことを確認してください。"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"modals": {
|
||||
|
||||
@@ -701,6 +701,16 @@
|
||||
"do-not-remind": "다시 알리지 않기",
|
||||
"ok": "확인"
|
||||
}
|
||||
},
|
||||
"bs-uninstall": {
|
||||
"errors": {
|
||||
"title": "버전을 제거할 수 없습니다",
|
||||
"desc": {
|
||||
"CantDeleteOfficialVersion": "BSManager는 원본 Beat Saber 버전을 제거할 수 없습니다",
|
||||
"VersionNotFound": "버전을 찾을 수 없습니다.",
|
||||
"delete-folder": "버전을 삭제할 수 없습니다. Beat Saber가 실행 중이지 않은지 확인하세요."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"modals": {
|
||||
|
||||
@@ -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": {
|
||||
|
||||
@@ -701,6 +701,16 @@
|
||||
"do-not-remind": "Больше не напоминать",
|
||||
"ok": "Ок"
|
||||
}
|
||||
},
|
||||
"bs-uninstall": {
|
||||
"errors": {
|
||||
"title": "Невозможно удалить версию",
|
||||
"desc": {
|
||||
"CantDeleteOfficialVersion": "BSManager не может удалить оригинальную версию Beat Saber",
|
||||
"VersionNotFound": "Версия не найдена.",
|
||||
"delete-folder": "Не удалось удалить версию. Убедитесь, что Beat Saber не запущен."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"modals": {
|
||||
|
||||
@@ -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": {
|
||||
|
||||
@@ -701,6 +701,16 @@
|
||||
"do-not-remind": "Не нагадувати",
|
||||
"ok": "Гаразд"
|
||||
}
|
||||
},
|
||||
"bs-uninstall": {
|
||||
"errors": {
|
||||
"title": "Неможливо видалити версію",
|
||||
"desc": {
|
||||
"CantDeleteOfficialVersion": "BSManager не може видалити оригінальну версію Beat Saber",
|
||||
"VersionNotFound": "Версія не знайдена.",
|
||||
"delete-folder": "Не вдалося видалити версію. Переконайтеся, що Beat Saber не запущений."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"modals": {
|
||||
|
||||
@@ -701,6 +701,16 @@
|
||||
"do-not-remind": "不要再提醒我",
|
||||
"ok": "確定"
|
||||
}
|
||||
},
|
||||
"bs-uninstall": {
|
||||
"errors": {
|
||||
"title": "無法卸載版本",
|
||||
"desc": {
|
||||
"CantDeleteOfficialVersion": "BSManager無法卸載Beat Saber的原始版本",
|
||||
"VersionNotFound": "找不到版本。",
|
||||
"delete-folder": "無法刪除版本。確保Beat Saber未運行。"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"modals": {
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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[] };
|
||||
|
||||
Reference in New Issue
Block a user