diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/authlibinjector/AuthlibInjectorAccount.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/authlibinjector/AuthlibInjectorAccount.java index 9fda11c6d..6bd5422fd 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/authlibinjector/AuthlibInjectorAccount.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/auth/authlibinjector/AuthlibInjectorAccount.java @@ -66,11 +66,10 @@ public class AuthlibInjectorAccount extends YggdrasilAccount { try { thread.join(); - String arg = "-javaagent:" + injectorJarPath.get() + "=" + serverBaseURL; - Arguments arguments = Arguments.addJVMArguments(null, arg); + Arguments arguments = new Arguments().addJVMArguments("-javaagent:" + injectorJarPath.get() + "=" + serverBaseURL); if (flag.get()) - arguments = Arguments.addJVMArguments(arguments, "-Dorg.to2mbn.authlibinjector.config.prefetched=" + new String(Base64.getEncoder().encode(getTask.getResult().getBytes()), UTF_8)); + arguments = arguments.addJVMArguments("-Dorg.to2mbn.authlibinjector.config.prefetched=" + new String(Base64.getEncoder().encode(getTask.getResult().getBytes()), UTF_8)); return info.withArguments(arguments); } catch (Exception e) { diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Arguments.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Arguments.java index a2be04601..9222e2e58 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Arguments.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/Arguments.java @@ -54,28 +54,22 @@ public final class Arguments { return jvm == null ? Collections.emptyList() : Collections.unmodifiableList(jvm); } - public static Arguments addGameArguments(Arguments arguments, String... gameArguments) { - return addGameArguments(arguments, Arrays.asList(gameArguments)); + public Arguments addGameArguments(String... gameArguments) { + return addGameArguments(Arrays.asList(gameArguments)); } - public static Arguments addGameArguments(Arguments arguments, List gameArguments) { + public Arguments addGameArguments(List gameArguments) { List list = gameArguments.stream().map(StringArgument::new).collect(Collectors.toList()); - if (arguments == null) - return new Arguments(list, null); - else - return new Arguments(Lang.merge(arguments.getGame(), list), arguments.getJvm()); + return new Arguments(Lang.merge(getGame(), list), getJvm()); } - public static Arguments addJVMArguments(Arguments arguments, String... jvmArguments) { - return addJVMArguments(arguments, Arrays.asList(jvmArguments)); + public Arguments addJVMArguments(String... jvmArguments) { + return addJVMArguments(Arrays.asList(jvmArguments)); } - public static Arguments addJVMArguments(Arguments arguments, List jvmArguments) { + public Arguments addJVMArguments(List jvmArguments) { List list = jvmArguments.stream().map(StringArgument::new).collect(Collectors.toList()); - if (arguments == null) - return new Arguments(null, list); - else - return new Arguments(arguments.getGame(), Lang.merge(arguments.getJvm(), list)); + return new Arguments(getGame(), Lang.merge(getJvm(), list)); } public static Arguments merge(Arguments a, Arguments b) { diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MultiMCModpackInstallTask.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MultiMCModpackInstallTask.java index b796d1e9f..692390880 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MultiMCModpackInstallTask.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/mod/MultiMCModpackInstallTask.java @@ -109,7 +109,7 @@ public final class MultiMCModpackInstallTask extends Task { version = version .setLibraries(Lang.merge(version.getLibraries(), patch.getLibraries())) .setMainClass(patch.getMainClass()) - .setArguments(Arguments.addGameArguments(version.getArguments().orElse(null), newArguments)); + .setArguments(version.getArguments().orElseGet(Arguments::new).addGameArguments(newArguments)); } } }