Launcher: fix natives MC 26.x (sous-dossiers java/jna/lwjgl/netty, extraction vers java/)

This commit is contained in:
kisakay
2026-10-18 19:13:18 +02:00
parent 98b411c21c
commit e9eaf24949
+15 -6
View File
@@ -719,6 +719,12 @@ class ProcessBuilder {
const libArr = this.vanillaManifest.libraries
fs.ensureDirSync(tempNativePath)
// Mojang (1.20.5+) attend des sous-dossiers : ${natives_directory}/java (java.library.path),
// /jna, /lwjgl, /netty (extraction runtime). Sans eux -> "not a directory" -> crash LWJGL.
// (SurviePote : correctif layout natives MC 26.x, Helios 2.x extrayait à plat.)
for(const sub of ['java', 'jna', 'lwjgl', 'netty']){
fs.ensureDirSync(path.join(tempNativePath, sub))
}
for(let i=0; i<libArr.length; i++){
const lib = libArr[i]
if(isLibraryCompatible(lib.rules, lib.natives)){
@@ -799,13 +805,16 @@ class ProcessBuilder {
const extractName = fileName.includes('/') ? fileName.substring(fileName.lastIndexOf('/')) : fileName
// Extract the file.
// Extract the file (racine pour compat + sous-dossier java/ exigé par MC récent).
if(!shouldExclude){
fs.writeFile(path.join(tempNativePath, extractName), zipEntries[i].getData(), (err) => {
if(err){
logger.error('Error while extracting native library:', err)
}
})
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)
}
})
}
}
}