4848#include " java/JavaVersion.h"
4949
5050#include " launch/ApplyAuthlibInjector.h"
51- #include " launch/ApplyLibraryOverrides.h"
5251#include " launch/LaunchTask.h"
5352#include " launch/SetDiscordActivity.h"
5453#include " launch/TaskStepWrapper.h"
5958#include " launch/steps/QuitAfterGameStop.h"
6059#include " launch/steps/TextPrint.h"
6160
61+ #include " minecraft/launch/ApplyAuthlibInjector.h"
62+ #include " minecraft/launch/ApplyElyPatch.h"
6263#include " minecraft/launch/AutoInstallJava.h"
6364#include " minecraft/launch/ClaimAccount.h"
6465#include " minecraft/launch/CreateGameFolders.h"
7172#include " minecraft/launch/ReconstructAssets.h"
7273#include " minecraft/launch/ScanModFolders.h"
7374#include " minecraft/launch/VerifyJavaInstall.h"
74- #include " minecraft/ScreenshotsWatcher.h"
7575
7676#include " minecraft/update/AssetUpdateTask.h"
7777#include " minecraft/update/FoldersTask.h"
8989
9090#include " WorldList.h"
9191
92+ #include " minecraft/ScreenshotsWatcher.h"
93+
9294#include " AssetsUtils.h"
9395#include " MinecraftLoadAndCheck.h"
9496#include " PackProfile.h"
@@ -523,9 +525,9 @@ static QString replaceTokensIn(const QString& text, const QMap<QString, QString>
523525 return result;
524526}
525527
526- QStringList MinecraftInstance::extraArguments ()
528+ QStringList MinecraftInstance::extraArguments (AuthSessionPtr session )
527529{
528- auto list = BaseInstance::extraArguments ();
530+ auto list = BaseInstance::extraArguments (nullptr );
529531 auto version = getPackProfile ();
530532 if (!version)
531533 return list;
@@ -545,7 +547,11 @@ QStringList MinecraftInstance::extraArguments()
545547 for (const auto & agent : agents) {
546548 QStringList jar, temp1, temp2, temp3;
547549 agent.library ->getApplicableFiles (runtimeContext (), jar, temp1, temp2, temp3, getLocalLibraryPath ());
548- list.append (" -javaagent:" + jar[0 ] + (agent.argument .isEmpty () ? " " : " =" + agent.argument ));
550+ QString arg = agent.argument ;
551+ if (session && agent.library ->artifactPrefix () == " moe.yushi:authlibinjector" ) {
552+ arg = replaceTokensIn (arg, { { " authlib_injector_auth_url" , session->authlib_injector_auth_url } });
553+ }
554+ list.append (" -javaagent:" + jar[0 ] + (agent.argument .isEmpty () ? " " : " =" + arg));
549555 }
550556
551557 {
@@ -579,14 +585,14 @@ QStringList MinecraftInstance::extraArguments()
579585 return list;
580586}
581587
582- QStringList MinecraftInstance::javaArguments ()
588+ QStringList MinecraftInstance::javaArguments (AuthSessionPtr session )
583589{
584590 QStringList args;
585591
586592 args << " -Duser.language=en" ;
587593
588594 // custom args go first. we want to override them if we have our own here.
589- args.append (extraArguments ());
595+ args.append (extraArguments (std::move (session) ));
590596
591597 // OSX dock icon and name
592598#ifdef Q_OS_MAC
@@ -667,7 +673,7 @@ QMap<QString, QString> MinecraftInstance::getVariables()
667673 out.insert (" INST_DIR" , QDir::toNativeSeparators (QDir (instanceRoot ()).absolutePath ()));
668674 out.insert (" INST_MC_DIR" , QDir::toNativeSeparators (QDir (gameRoot ()).absolutePath ()));
669675 out.insert (" INST_JAVA" , QDir::toNativeSeparators (QDir (settings ()->get (" JavaPath" ).toString ()).absolutePath ()));
670- out.insert (" INST_JAVA_ARGS" , javaArguments ().join (' ' ));
676+ out.insert (" INST_JAVA_ARGS" , javaArguments (nullptr ).join (' ' ));
671677 out.insert (" NO_COLOR" , " 1" );
672678#ifdef Q_OS_MACOS
673679 // get library for Steam overlay support
@@ -1171,8 +1177,8 @@ LaunchTask* MinecraftInstance::createLaunchTask(AuthSessionPtr session, Minecraf
11711177 }
11721178
11731179 // load meta
1180+ auto mode = session->launchMode != LaunchMode::Offline ? Net::Mode::Online : Net::Mode::Offline;
11741181 {
1175- auto mode = session->launchMode != LaunchMode::Offline ? Net::Mode::Online : Net::Mode::Offline;
11761182 process->appendStep (makeShared<TaskStepWrapper>(pptr, makeShared<MinecraftLoadAndCheck>(this , mode)));
11771183 }
11781184
@@ -1191,13 +1197,15 @@ LaunchTask* MinecraftInstance::createLaunchTask(AuthSessionPtr session, Minecraf
11911197 process->appendStep (step);
11921198 }
11931199
1200+ if (session->wants_ely_patch ) {
1201+ process->appendStep (makeShared<ApplyElyPatch>(pptr, m_runtimeContext, mode));
1202+ } else if (session->wants_authlib_injector ) {
1203+ process->appendStep (makeShared<ApplyAuthlibInjector>(pptr, m_runtimeContext, mode));
1204+ }
1205+
11941206 // if we aren't in offline mode
11951207 if (session->launchMode != LaunchMode::Offline) {
11961208 process->appendStep (makeShared<ClaimAccount>(pptr, session));
1197- process->appendStep (makeShared<ApplyLibraryOverrides>(pptr, session));
1198- if (session->wants_authlib_injector ) {
1199- process->appendStep (makeShared<ApplyAuthlibInjector>(pptr, session));
1200- }
12011209 for (auto t : createUpdateTask ()) {
12021210 process->appendStep (makeShared<TaskStepWrapper>(pptr, t));
12031211 }
0 commit comments