Add the ability to update BepInEx

This commit is contained in:
2026-04-17 22:30:07 +02:00
parent 7fe89ff2ab
commit dbad325ca9
3 changed files with 17 additions and 4 deletions

16
main.js
View File

@@ -208,9 +208,13 @@ function saveBepinexVersion(version) {
} }
ipcMain.handle("load-bepinex-version", () => { ipcMain.handle("load-bepinex-version", () => {
return loadBepinexVersion();
});
function loadBepinexVersion() {
bepinexVersion = bepinexStore.get("bepinex-version"); bepinexVersion = bepinexStore.get("bepinex-version");
return bepinexVersion; return bepinexVersion;
}); }
function saveBepinexBackupVersion(version) { function saveBepinexBackupVersion(version) {
bepinexBackupVersion = version; bepinexBackupVersion = version;
@@ -377,8 +381,6 @@ async function installBepinex() {
saveBepinexVersion(bepinexBackupVersion); saveBepinexVersion(bepinexBackupVersion);
saveBepinexBackupVersion(undefined); saveBepinexBackupVersion(undefined);
} else { } else {
mainWindow.webContents.send("showToast", "Installing Bepinex from Github");
const GITHUB_URL = "https://api.github.com/repos/bepinex/bepinex/releases/latest"; const GITHUB_URL = "https://api.github.com/repos/bepinex/bepinex/releases/latest";
const res = await fetch(GITHUB_URL, { const res = await fetch(GITHUB_URL, {
@@ -397,6 +399,14 @@ async function installBepinex() {
const release = await res.json(); const release = await res.json();
if (loadBepinexVersion() == release.tag_name) {
mainWindow.webContents.send("showToast", "No new BepInEx update.");
return;
}
mainWindow.webContents.send("showToast", "Installing Bepinex from Github");
await uninstallBepinex();
let asset; let asset;
if (process.platform === "win32") { if (process.platform === "win32") {
asset = release.assets.find((a) => a.name.endsWith(".zip") && a.name.toLowerCase().includes("win_x64")); asset = release.assets.find((a) => a.name.endsWith(".zip") && a.name.toLowerCase().includes("win_x64"));

View File

@@ -281,7 +281,7 @@
<p class="transparent-text" id="bepinex-version-text"></p> <p class="transparent-text" id="bepinex-version-text"></p>
<br /> <br />
<div class="horizontal-div"> <div class="horizontal-div">
<button class="default-button" onclick="installBepinex()">Install</button> <button id="install-bepinex-button" class="default-button" onclick="installBepinex()">Install</button>
<button class="important-button" onclick="uninstallBepinex()">Uninstall</button> <button class="important-button" onclick="uninstallBepinex()">Uninstall</button>
<button class="default-button" onclick="backupBepinex()">Backup</button> <button class="default-button" onclick="backupBepinex()">Backup</button>
<button class="important-button" onclick="deleteBepinexBackup()">Delete Backup</button> <button class="important-button" onclick="deleteBepinexBackup()">Delete Backup</button>

View File

@@ -589,6 +589,7 @@ async function deleteBepinexBackup() {
async function setBepinexVersion() { async function setBepinexVersion() {
const bepinexVersionText = document.getElementById("bepinex-version-text"); const bepinexVersionText = document.getElementById("bepinex-version-text");
const bepinexInstallButton = document.getElementById("install-bepinex-button");
if (bepinexVersionText == undefined) { if (bepinexVersionText == undefined) {
return; return;
} }
@@ -601,8 +602,10 @@ async function setBepinexVersion() {
} else { } else {
bepinexVersionText.innerText = `BepInEx ${bepinexBackupVersion} is backed up`; bepinexVersionText.innerText = `BepInEx ${bepinexBackupVersion} is backed up`;
} }
bepinexInstallButton.innerText = "Install";
} else { } else {
bepinexVersionText.innerText = `BepInEx ${bepinexVersion} is installed`; bepinexVersionText.innerText = `BepInEx ${bepinexVersion} is installed`;
bepinexInstallButton.innerText = "Update";
} }
} }