Compare commits

...

2 Commits

Author SHA1 Message Date
dbad325ca9 Add the ability to update BepInEx 2026-04-17 22:30:07 +02:00
7fe89ff2ab Add files to ignore to eslint config 2026-04-17 22:08:00 +02:00
5 changed files with 20 additions and 5 deletions

View File

@@ -6,6 +6,7 @@ import stylistic from "@stylistic/eslint-plugin";
export default defineConfig([ export default defineConfig([
{ {
files: ["**/*.{js,mjs,cjs}"], files: ["**/*.{js,mjs,cjs}"],
ignores: ["node_modules/**", "out/**"],
plugins: { js, "@stylistic": stylistic }, plugins: { js, "@stylistic": stylistic },
extends: ["js/recommended"], extends: ["js/recommended"],
languageOptions: { globals: { ...globals.browser, ...globals.node } }, languageOptions: { globals: { ...globals.browser, ...globals.node } },

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

@@ -12,7 +12,8 @@
"make:msi": "cross-env BUILD_TARGET=msi electron-forge make", "make:msi": "cross-env BUILD_TARGET=msi electron-forge make",
"make:zip": "cross-env BUILD_TARGET=zip electron-forge make", "make:zip": "cross-env BUILD_TARGET=zip electron-forge make",
"make:deb": "cross-env BUILD_TARGET=deb electron-forge make", "make:deb": "cross-env BUILD_TARGET=deb electron-forge make",
"make:appimage": "cross-env BUILD_TARGET=appimage electron-forge make" "make:appimage": "cross-env BUILD_TARGET=appimage electron-forge make",
"lint": "npx eslint"
}, },
"author": "GabiZar", "author": "GabiZar",
"license": "GPL-3.0", "license": "GPL-3.0",

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";
} }
} }