MCPcopy Create free account
hub / github.com/PolyMC/PolyMC / processMinecraftArgs

Method processMinecraftArgs

launcher/minecraft/MinecraftInstance.cpp:528–583  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

526}
527
528QStringList MinecraftInstance::processMinecraftArgs(
529 AuthSessionPtr session, MinecraftServerTargetPtr serverToJoin) const
530{
531 auto profile = m_components->getProfile();
532 QString args_pattern = profile->getMinecraftArguments();
533 for (auto tweaker : profile->getTweakers())
534 {
535 args_pattern += " --tweakClass " + tweaker;
536 }
537
538 if (serverToJoin && !serverToJoin->address.isEmpty())
539 {
540 args_pattern += " --server " + serverToJoin->address;
541 args_pattern += " --port " + QString::number(serverToJoin->port);
542 }
543
544 QMap<QString, QString> token_mapping;
545 // yggdrasil!
546 if(session) {
547 // token_mapping["auth_username"] = session->username;
548 token_mapping["auth_session"] = session->session;
549 token_mapping["auth_access_token"] = session->access_token;
550 token_mapping["auth_player_name"] = session->player_name;
551 token_mapping["auth_uuid"] = session->uuid;
552 token_mapping["user_properties"] = session->serializeUserProperties();
553 token_mapping["user_type"] = session->user_type;
554 if(session->demo) {
555 args_pattern += " --demo";
556 }
557 }
558
559 token_mapping["profile_name"] = name();
560 token_mapping["version_name"] = profile->getMinecraftVersion();
561 token_mapping["version_type"] = profile->getMinecraftVersionType();
562
563 QString absRootDir = QDir(gameRoot()).absolutePath();
564 token_mapping["game_directory"] = absRootDir;
565 QString absAssetsDir = QDir("assets/").absolutePath();
566 auto assets = profile->getMinecraftAssets();
567 token_mapping["game_assets"] = AssetsUtils::getAssetsDir(assets->id, resourcesDir()).absolutePath();
568
569 // 1.7.3+ assets tokens
570 token_mapping["assets_root"] = absAssetsDir;
571 token_mapping["assets_index_name"] = assets->id;
572
573#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
574 QStringList parts = args_pattern.split(' ', Qt::SkipEmptyParts);
575#else
576 QStringList parts = args_pattern.split(' ', QString::SkipEmptyParts);
577#endif
578 for (int i = 0; i < parts.length(); i++)
579 {
580 parts[i] = replaceTokensIn(parts[i], token_mapping);
581 }
582 return parts;
583}
584
585QString MinecraftInstance::createLaunchScript(AuthSessionPtr session, MinecraftServerTargetPtr serverToJoin)

Callers 1

executeTaskMethod · 0.80

Calls 11

getAssetsDirFunction · 0.85
replaceTokensInFunction · 0.85
getProfileMethod · 0.80
getMinecraftArgumentsMethod · 0.80
isEmptyMethod · 0.80
getMinecraftVersionMethod · 0.80
getMinecraftAssetsMethod · 0.80
lengthMethod · 0.80
QDirClass · 0.50

Tested by

no test coverage detected