diff --git a/src-tauri/src/system_helpers.rs b/src-tauri/src/system_helpers.rs index 88028db..58b3080 100644 --- a/src-tauri/src/system_helpers.rs +++ b/src-tauri/src/system_helpers.rs @@ -2,11 +2,8 @@ use duct::cmd; #[tauri::command] pub fn run_program(path: String) { - // Open in new thread to prevent blocking. - std::thread::spawn(move || { - // Without unwrap_or, this can crash when UAC prompt is denied - open::that(&path).unwrap_or(()); - }); + // Without unwrap_or, this can crash when UAC prompt is denied + open::that(&path).unwrap_or(()); } #[tauri::command] @@ -18,11 +15,11 @@ pub fn run_program_relative(path: String) { let mut path_buf = std::path::PathBuf::from(&path); path_buf.pop(); - // Open in new thread to prevent blocking. - std::thread::spawn(move || { - // Without unwrap_or, this can crash when UAC prompt is denied - open::that(&path).unwrap_or(()); - }); + // Set new working directory + std::env::set_current_dir(&path_buf).unwrap(); + + // Without unwrap_or, this can crash when UAC prompt is denied + open::that(&path).unwrap_or(()); // Restore the original working directory std::env::set_current_dir(&cwd).unwrap(); diff --git a/src/ui/components/ServerLaunchSection.tsx b/src/ui/components/ServerLaunchSection.tsx index f564cf9..df3beac 100644 --- a/src/ui/components/ServerLaunchSection.tsx +++ b/src/ui/components/ServerLaunchSection.tsx @@ -202,11 +202,15 @@ export default class ServerLaunchSection extends React.Component<{}, IState> { async launchMigoto() { const config = await getConfig() - // Get game exe from game path, so we can watch it - const pathArr = config.game_install_path.replace(/\\/g, '/').split('/') - const gameExec = pathArr[pathArr.length - 1] + if (!config.migoto_path) return alert('Migoto not installed or set!') - await this.playGame(config.migoto_path, gameExec) + // Get game exe from game path, so we can watch it + const pathArr = config.migoto_path.replace(/\\/g, '/').split('/') + const migotoExec = pathArr[pathArr.length - 1] + + await invoke('run_program_relative', { path: config.migoto_path }) + + await this.playGame() } setIp(text: string) {