diff --git a/launcher/app/assets/js/processbuilder.js b/launcher/app/assets/js/processbuilder.js index 9cf5cd0..948400a 100644 --- a/launcher/app/assets/js/processbuilder.js +++ b/launcher/app/assets/js/processbuilder.js @@ -754,13 +754,14 @@ class ProcessBuilder { } }) - // Extract the file. + // Extract the file (synchrone, voir bloc 1.19+). if(!shouldExclude){ - fs.writeFile(path.join(tempNativePath, fileName), zipEntries[i].getData(), (err) => { - if(err){ - logger.error('Error while extracting native library:', err) - } - }) + try { + fs.writeFileSync(path.join(tempNativePath, fileName), zipEntries[i].getData()) + fs.writeFileSync(path.join(tempNativePath, 'java', fileName), zipEntries[i].getData()) + } catch(err) { + logger.error('Error while extracting native library:', err) + } } } @@ -806,14 +807,15 @@ class ProcessBuilder { const extractName = fileName.includes('/') ? fileName.substring(fileName.lastIndexOf('/')) : fileName // Extract the file (racine pour compat + sous-dossier java/ exigé par MC récent). + // Synchrone : le jeu démarre aussitôt après, l'async faisait rater les grosses .so. if(!shouldExclude){ const data = zipEntries[i].getData() for(const dest of [path.join(tempNativePath, extractName), path.join(tempNativePath, 'java', extractName)]){ - fs.writeFile(dest, data, (err) => { - if(err){ - logger.error('Error while extracting native library:', err) - } - }) + try { + fs.writeFileSync(dest, data) + } catch(err) { + logger.error('Error while extracting native library:', err) + } } }