diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/util/HMCLGameLauncher.java b/HMCL/src/main/java/org/jackhuang/hmcl/util/HMCLGameLauncher.java index 44c1d55de..c076b5e71 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/util/HMCLGameLauncher.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/util/HMCLGameLauncher.java @@ -17,7 +17,6 @@ */ package org.jackhuang.hmcl.util; -import java.io.File; import org.jackhuang.hmcl.core.GameException; import org.jackhuang.hmcl.api.auth.AuthenticationException; import org.jackhuang.hmcl.core.auth.AbstractAuthenticator; @@ -35,6 +34,7 @@ import org.jackhuang.hmcl.api.event.launch.ProcessingLaunchOptionsEvent; import org.jackhuang.hmcl.core.RuntimeGameException; import org.jackhuang.hmcl.api.func.Consumer; import org.jackhuang.hmcl.api.HMCLog; +import org.jackhuang.hmcl.api.Wrapper; import org.jackhuang.hmcl.util.sys.JavaProcess; import org.jackhuang.hmcl.api.auth.IAuthenticator; @@ -83,9 +83,9 @@ public class HMCLGameLauncher { public void run() { Thread.currentThread().setName("Game Launcher"); try { - LaunchOptions options = profile.getSelectedVersionSetting().createLaunchOptions(profile.getGameDir()); + Wrapper options = new Wrapper<>(profile.getSelectedVersionSetting().createLaunchOptions(profile.getGameDir())); HMCLApi.EVENT_BUS.fireChannel(new ProcessingLaunchOptionsEvent(this, options)); - DefaultGameLauncher gl = new DefaultGameLauncher(options, profile.service(), li, l); + DefaultGameLauncher gl = new DefaultGameLauncher(options.getValue(), profile.service(), li, l); GameLauncherTag tag = new GameLauncherTag(); tag.launcherVisibility = profile.getSelectedVersionSetting().getLauncherVisibility(); gl.setTag(tag); diff --git a/HMCLAPI/src/main/java/org/jackhuang/hmcl/api/event/launch/ProcessingLaunchOptionsEvent.java b/HMCLAPI/src/main/java/org/jackhuang/hmcl/api/event/launch/ProcessingLaunchOptionsEvent.java index bd4e350ea..cd621acca 100644 --- a/HMCLAPI/src/main/java/org/jackhuang/hmcl/api/event/launch/ProcessingLaunchOptionsEvent.java +++ b/HMCLAPI/src/main/java/org/jackhuang/hmcl/api/event/launch/ProcessingLaunchOptionsEvent.java @@ -17,6 +17,7 @@ */ package org.jackhuang.hmcl.api.event.launch; +import org.jackhuang.hmcl.api.Wrapper; import org.jackhuang.hmcl.api.event.SimpleEvent; import org.jackhuang.hmcl.api.game.LaunchOptions; @@ -31,9 +32,9 @@ import org.jackhuang.hmcl.api.game.LaunchOptions; * @param LaunchOptions you can modify the value of this event to control the launching process. * @author huang */ -public class ProcessingLaunchOptionsEvent extends SimpleEvent { +public class ProcessingLaunchOptionsEvent extends SimpleEvent> { - public ProcessingLaunchOptionsEvent(Object source, LaunchOptions value) { + public ProcessingLaunchOptionsEvent(Object source, Wrapper value) { super(source, value); } diff --git a/HMCLAPI/src/main/java/org/jackhuang/hmcl/api/event/launch/ProcessingLoginResultEvent.java b/HMCLAPI/src/main/java/org/jackhuang/hmcl/api/event/launch/ProcessingLoginResultEvent.java index 76a6162f7..1cf3e4b20 100644 --- a/HMCLAPI/src/main/java/org/jackhuang/hmcl/api/event/launch/ProcessingLoginResultEvent.java +++ b/HMCLAPI/src/main/java/org/jackhuang/hmcl/api/event/launch/ProcessingLoginResultEvent.java @@ -17,6 +17,7 @@ */ package org.jackhuang.hmcl.api.event.launch; +import org.jackhuang.hmcl.api.Wrapper; import org.jackhuang.hmcl.api.auth.UserProfileProvider; import org.jackhuang.hmcl.api.event.SimpleEvent; @@ -31,9 +32,9 @@ import org.jackhuang.hmcl.api.event.SimpleEvent; * @param UserProfileProvider you can modify the value of this event to control the user profile. * @author huangyuhui */ -public class ProcessingLoginResultEvent extends SimpleEvent { +public class ProcessingLoginResultEvent extends SimpleEvent> { - public ProcessingLoginResultEvent(Object source, UserProfileProvider value) { + public ProcessingLoginResultEvent(Object source, Wrapper value) { super(source, value); } diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/core/launch/GameLauncher.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/core/launch/GameLauncher.java index 9f4586597..af5183fb5 100644 --- a/HMCLCore/src/main/java/org/jackhuang/hmcl/core/launch/GameLauncher.java +++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/core/launch/GameLauncher.java @@ -44,6 +44,7 @@ import org.jackhuang.hmcl.util.C; import org.jackhuang.hmcl.util.StrUtils; import org.jackhuang.hmcl.util.code.Charsets; import org.jackhuang.hmcl.api.HMCLog; +import org.jackhuang.hmcl.api.Wrapper; import org.jackhuang.hmcl.util.sys.FileUtils; import org.jackhuang.hmcl.util.sys.JavaProcess; import org.jackhuang.hmcl.util.sys.OS; @@ -113,7 +114,9 @@ public class GameLauncher { result = login.loginBySettings(); if (result == null) throw new AuthenticationException("Result can not be null."); - HMCLApi.EVENT_BUS.fireChannel(new ProcessingLoginResultEvent(this, result)); + Wrapper loginInfo = new Wrapper<>(result); + HMCLApi.EVENT_BUS.fireChannel(new ProcessingLoginResultEvent(this, loginInfo)); + result = loginInfo.getValue(); HMCLApi.EVENT_BUS.fireChannel(new LaunchingStateChangedEvent(this, LaunchingState.GeneratingLaunchingCodes)); loader = service.launch(options, result);