Launcher: extraction natives synchrone (race: grosses .so manquantes au boot)

This commit is contained in:
kisakay
2026-10-18 19:14:56 +02:00
parent e9eaf24949
commit 055ce42c1b
+13 -11
View File
@@ -754,13 +754,14 @@ class ProcessBuilder {
} }
}) })
// Extract the file. // Extract the file (synchrone, voir bloc 1.19+).
if(!shouldExclude){ if(!shouldExclude){
fs.writeFile(path.join(tempNativePath, fileName), zipEntries[i].getData(), (err) => { try {
if(err){ fs.writeFileSync(path.join(tempNativePath, fileName), zipEntries[i].getData())
logger.error('Error while extracting native library:', err) 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 const extractName = fileName.includes('/') ? fileName.substring(fileName.lastIndexOf('/')) : fileName
// Extract the file (racine pour compat + sous-dossier java/ exigé par MC récent). // 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){ if(!shouldExclude){
const data = zipEntries[i].getData() const data = zipEntries[i].getData()
for(const dest of [path.join(tempNativePath, extractName), path.join(tempNativePath, 'java', extractName)]){ for(const dest of [path.join(tempNativePath, extractName), path.join(tempNativePath, 'java', extractName)]){
fs.writeFile(dest, data, (err) => { try {
if(err){ fs.writeFileSync(dest, data)
logger.error('Error while extracting native library:', err) } catch(err) {
} logger.error('Error while extracting native library:', err)
}) }
} }
} }