diff --git a/main.js b/main.js index a9d9d0a..f9afc14 100644 --- a/main.js +++ b/main.js @@ -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({ @@ -52,4 +53,8 @@ async function fileExists(filePath) { ipcMain.handle('file-exists', async (_, filePath) => { return await fileExists(filePath); +}); + +ipcMain.handle('get-userSavePath', () => { + return userSavePath }); \ No newline at end of file diff --git a/preload.js b/preload.js index 36fa8a4..e784185 100644 --- a/preload.js +++ b/preload.js @@ -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') }); \ No newline at end of file diff --git a/renderer/renderer.js b/renderer/renderer.js index a7193d2..7934c9d 100644 --- a/renderer/renderer.js +++ b/renderer/renderer.js @@ -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()