fix jna&oshi
This commit is contained in:
parent
ac3851d8e4
commit
5e89adcba8
|
@ -50,6 +50,7 @@ import java.nio.file.Path;
|
|||
import java.util.*;
|
||||
import java.util.function.Supplier;
|
||||
import java.util.logging.Level;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class DefaultLauncher extends Launcher {
|
||||
|
||||
|
@ -148,6 +149,8 @@ public class DefaultLauncher extends Launcher {
|
|||
res.addDefault("-Duser.home=", options.getGameDir().getAbsolutePath());
|
||||
res.addDefault("-Duser.language=", System.getProperty("user.language"));
|
||||
res.addDefault("-Duser.timezone=", TimeZone.getDefault().getID());
|
||||
res.addDefault("-Djna.boot.library.path=", context.getApplicationInfo().nativeLibraryDir);
|
||||
res.addDefault("-Dorg.lwjgl.vulkan.libname=","libvulkan.so");
|
||||
|
||||
if (getInjectorArg() != null && options.isBeGesture()) {
|
||||
res.addDefault("-Dfcl.injector=", getInjectorArg());
|
||||
|
@ -178,8 +181,14 @@ public class DefaultLauncher extends Launcher {
|
|||
configuration.put("${assets_root}", gameAssets.toAbsolutePath().toString());
|
||||
|
||||
configuration.put("${natives_directory}", "${natives_directory}");
|
||||
|
||||
res.addAll(Arguments.parseArguments(version.getArguments().map(Arguments::getJvm).orElseGet(this::getDefaultJVMArguments), configuration));
|
||||
List<String> jvmArgs = Arguments.parseArguments(version.getArguments().map(Arguments::getJvm).orElseGet(this::getDefaultJVMArguments), configuration);
|
||||
res.addAll(jvmArgs.stream().filter(arg -> {
|
||||
if (arg.contains("-Djna.tmpdir=") || arg.contains("-Dorg.lwjgl.system.SharedLibraryExtractPath=")) {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}).collect(Collectors.toList()));
|
||||
Arguments argumentsFromAuthInfo = authInfo.getLaunchArguments(options);
|
||||
if (argumentsFromAuthInfo != null && argumentsFromAuthInfo.getJvm() != null && !argumentsFromAuthInfo.getJvm().isEmpty())
|
||||
res.addAll(Arguments.parseArguments(argumentsFromAuthInfo.getJvm(), configuration));
|
||||
|
|
|
@ -14,8 +14,18 @@ public class LibFilter {
|
|||
"{\n" +
|
||||
" \"name\": \"org.ow2.asm:asm-all:5.2\"\n" +
|
||||
"}";
|
||||
private static final String JNA_5_13_STRING =
|
||||
"{\n" +
|
||||
" \"name\": \"net.java.dev.jna:jna:5.13.0\"\n" +
|
||||
"}";
|
||||
private static final String OSHI_6_3_STRING =
|
||||
"{\n" +
|
||||
" \"name\": \"com.github.oshi:oshi-core:6.3.0\"\n" +
|
||||
"}";
|
||||
|
||||
private static final Library ASM_ALL_5_2 = GSON.fromJson(ASM_ALL_5_2_STRING, Library.class);
|
||||
private static final Library JNA_5_13 = GSON.fromJson(JNA_5_13_STRING, Library.class);
|
||||
private static final Library OSHI_6_3 = GSON.fromJson(OSHI_6_3_STRING, Library.class);
|
||||
|
||||
public static Version filter(Version version) {
|
||||
return version.setLibraries(filterLibs(version.getLibraries()));
|
||||
|
@ -24,9 +34,22 @@ public class LibFilter {
|
|||
public static List<Library> filterLibs(List<Library> libraries) {
|
||||
ArrayList<Library> newLibraries = new ArrayList<>();
|
||||
for (Library library : libraries) {
|
||||
if (!library.isNative() && !library.getName().contains("org.lwjgl") && (library.getName().contains("jna") || !library.getName().contains("platform"))) {
|
||||
if (!library.getName().contains("org.lwjgl") && !library.getName().contains("jinput-platform")) {
|
||||
String[] version = library.getName().split(":")[2].split("\\.");
|
||||
if (library.getArtifactId().equals("asm-all") && library.getVersion().equals("4.1")) {
|
||||
newLibraries.add(ASM_ALL_5_2);
|
||||
} else if (library.getName().startsWith("net.java.dev.jna:jna:")) {
|
||||
if (Integer.parseInt(version[0]) >= 5 && Integer.parseInt(version[1]) >= 13) {
|
||||
newLibraries.add(library);
|
||||
} else {
|
||||
newLibraries.add(JNA_5_13);
|
||||
}
|
||||
} else if (library.getName().startsWith("com.github.oshi:oshi-core:")) {
|
||||
if (Integer.parseInt(version[0]) != 6 || Integer.parseInt(version[1]) != 2) {
|
||||
newLibraries.add(library);
|
||||
} else {
|
||||
newLibraries.add(OSHI_6_3);
|
||||
}
|
||||
} else {
|
||||
newLibraries.add(library);
|
||||
}
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue