diff --git a/entry.js b/entry.js index 60e2567..84f0f41 100644 --- a/entry.js +++ b/entry.js @@ -124,7 +124,11 @@ app.whenReady().then(() => { ipcMain.on('prefix-con', async () => { const result = await dialog.showOpenDialog({ properties: ['openDirectory'] }); if(result.filePaths.length == 0) return; - mainWindow.webContents.send('change-prefix', { 'dir': result.filePaths[0] }); + mainWindow.webContents.send('change-prefix', { 'type': 'change', 'dir': result.filePaths[0] }); + }); + + ipcMain.on('prefix-reset', async () => { + mainWindow.webContents.send('change-prefix', { 'type': 'reset' }); }); ipcMain.on('prefix-changed', async () => { diff --git a/public/html/settings.html b/public/html/settings.html index 1fb5e96..21d67d2 100644 --- a/public/html/settings.html +++ b/public/html/settings.html @@ -116,6 +116,7 @@ empty +
diff --git a/src/ts/index.ts b/src/ts/index.ts index fdf0309..a9b3213 100644 --- a/src/ts/index.ts +++ b/src/ts/index.ts @@ -61,7 +61,8 @@ $(() => { }); ipcRenderer.on('change-prefix', (event: void, data: any) => { - PrefixSelector.set(data.dir); + if(data.type == 'change') PrefixSelector.set(data.dir); + if(data.type == 'reset') PrefixSelector.Default(); LauncherUI.updateLauncherState(); ipcRenderer.send('prefix-changed'); }); diff --git a/src/ts/lib/PrefixSelector.ts b/src/ts/lib/PrefixSelector.ts index 0248315..e96a439 100644 --- a/src/ts/lib/PrefixSelector.ts +++ b/src/ts/lib/PrefixSelector.ts @@ -19,7 +19,7 @@ export default class PrefixSelector } else if (fs.existsSync(path.join(location, 'drive_c', 'Program Files', 'Genshin Impact', 'GenshinImpact_Data', 'globalgamemanagers'))) { const config = fs.readFileSync(path.join(location, 'drive_c', 'Program Files', 'Genshin Impact', 'GenshinImpact_Data', 'globalgamemanagers'), { encoding: 'ascii' }); const version = /([1-9]+\.[0-9]+\.[0-9]+)_[\d]+_[\d]+/.exec(config)![1]; - + LauncherLib.updateConfig('version', version); LauncherLib.updateConfig('prefix', location); this.prefix = location; @@ -40,16 +40,24 @@ export default class PrefixSelector if (fs.existsSync(path.join(dp, 'drive_c', 'Program Files', 'Genshin Impact', 'GenshinImpact_Data', 'Persistent'))) { const version = fs.readFileSync(path.join(dp, 'drive_c', 'Program Files', 'Genshin Impact', 'GenshinImpact_Data', 'Persistent', 'ScriptVersion'), { encoding: 'UTF-8' }).toString(); - console.log(version); + + LauncherLib.updateConfig('version', version); + LauncherLib.updateConfig('prefix', dp); + this.prefix = dp; } else if (fs.existsSync(path.join(dp, 'drive_c', 'Program Files', 'Genshin Impact', 'GenshinImpact_Data', 'globalgamemanagers'))) { const config = fs.readFileSync(path.join(dp, 'drive_c', 'Program Files', 'Genshin Impact', 'GenshinImpact_Data', 'globalgamemanagers'), { encoding: 'ascii' }); const version = /([1-9]+\.[0-9]+\.[0-9]+)_[\d]+_[\d]+/.exec(config)![1]; - console.log(version); + + LauncherLib.updateConfig('version', version); + LauncherLib.updateConfig('prefix', dp); + this.prefix = dp; } else { console.log('Game not found.'); // Unset version if game is not found. LauncherLib.updateConfig('version', null); + LauncherLib.updateConfig('prefix', dp); + this.prefix = dp; } } diff --git a/src/ts/settings.ts b/src/ts/settings.ts index 3328ded..68db7b7 100644 --- a/src/ts/settings.ts +++ b/src/ts/settings.ts @@ -59,7 +59,7 @@ $(() => { */ $('#prefixloc span').text(LauncherLib.getConfig('prefix')); - + ipcRenderer.on('prefix-changed', () => { $('#prefixloc span').text(LauncherLib.getConfig('prefix')); }) @@ -68,6 +68,10 @@ $(() => { ipcRenderer.send('prefix-con'); }) + $('#prefixloc #defprefix').on('click', () => { + ipcRenderer.send('prefix-reset'); + }) + /** * Game voice language */