fix and improve auto game path detection

This commit is contained in:
2026-01-16 19:05:46 +01:00
parent d75a0ecdff
commit b69a0c1b2d
3 changed files with 19 additions and 5 deletions

View File

@@ -4,6 +4,7 @@ const Store = require('electron-store').default;
const fs = require('fs/promises');
const store = new Store();
const userSavePath = app.getPath('userData')
const createWindow = () => {
const win = new BrowserWindow({
@@ -53,3 +54,7 @@ async function fileExists(filePath) {
ipcMain.handle('file-exists', async (_, filePath) => {
return await fileExists(filePath);
});
ipcMain.handle('get-userSavePath', () => {
return userSavePath
});

View File

@@ -4,15 +4,16 @@ contextBridge.exposeInMainWorld('versions', {
node: () => process.versions.node,
chrome: () => process.versions.chrome,
electron: () => process.versions.electron
})
});
contextBridge.exposeInMainWorld('save', {
saveSilksongPath: (path) =>
ipcRenderer.invoke('save-path', path),
loadSilksongPath: () =>
ipcRenderer.invoke('load-path')
})
});
contextBridge.exposeInMainWorld('files', {
fileExists: (path) => ipcRenderer.invoke('file-exists', path)
fileExists: (path) => ipcRenderer.invoke('file-exists', path),
userSavePath: () => ipcRenderer.invoke('get-userSavePath')
});

View File

@@ -9,7 +9,15 @@ const settingsTemplate = document.getElementById("settings-template");
const versionText = HomeTemplate.content.getElementById("version-text")
navigate("home")
autoDetectGamePath()
files.userSavePath().then(path => {
path = `${path}\\config.json`
files.fileExists(path).then(result => {
if(!result) {
autoDetectGamePath()
}
});
});
async function navigate(page) {
view.replaceChildren()
@@ -55,7 +63,7 @@ function launch(mode) {
async function autoDetectGamePath() {
const defaultSilksongPath = "C:/Program Files (x86)/Steam/steamapps/common/Hollow Knight Silksong/Hollow Knight Silksong.exe"
if (files.fileExists(defaultSilksongPath)) {
if (await files.fileExists(defaultSilksongPath)) {
await save.saveSilksongPath(defaultSilksongPath)
if (document.getElementById("silksong-path-input")) {
document.getElementById("silksong-path-input").value = await save.loadSilksongPath()