diff options
author | Jamie Mansfield <jmansfield@cadixdev.org> | 2022-05-23 20:14:23 +0100 |
---|---|---|
committer | Jamie Mansfield <jmansfield@cadixdev.org> | 2022-05-23 20:57:15 +0100 |
commit | 101ca60b2bb1d3c3047bc5842461c68d05708e39 (patch) | |
tree | c74b66fa9615ca1ade0d39fc984642c2b568ed4d /launcher/modplatform/atlauncher/ATLPackInstallTask.cpp | |
parent | f28a0aa666565354e657dec59249aa1fd237cdb0 (diff) | |
download | PrismLauncher-101ca60b2bb1d3c3047bc5842461c68d05708e39.tar.gz PrismLauncher-101ca60b2bb1d3c3047bc5842461c68d05708e39.tar.bz2 PrismLauncher-101ca60b2bb1d3c3047bc5842461c68d05708e39.zip |
ATLauncher: Handle extra arguments depends
Diffstat (limited to 'launcher/modplatform/atlauncher/ATLPackInstallTask.cpp')
-rw-r--r-- | launcher/modplatform/atlauncher/ATLPackInstallTask.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp b/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp index e6fd1334..b2dda4e4 100644 --- a/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp +++ b/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp @@ -414,14 +414,16 @@ bool PackInstallTask::createLibrariesComponent(QString instanceRoot, std::shared bool PackInstallTask::createPackComponent(QString instanceRoot, std::shared_ptr<PackProfile> profile) { - if (m_version.mainClass.mainClass.isEmpty() && m_version.extraArguments.isEmpty()) { + if (m_version.mainClass.mainClass.isEmpty() && m_version.extraArguments.arguments.isEmpty()) { return true; } auto mainClass = m_version.mainClass.mainClass; + auto extraArguments = m_version.extraArguments.arguments; auto hasMainClassDepends = !m_version.mainClass.depends.isEmpty(); - if (hasMainClassDepends) { + auto hasExtraArgumentsDepends = !m_version.extraArguments.depends.isEmpty(); + if (hasMainClassDepends || hasExtraArgumentsDepends) { QSet<QString> mods; for (const auto& item : m_version.mods) { mods.insert(item.name); @@ -430,6 +432,14 @@ bool PackInstallTask::createPackComponent(QString instanceRoot, std::shared_ptr< if (hasMainClassDepends && !mods.contains(m_version.mainClass.depends)) { mainClass = ""; } + + if (hasExtraArgumentsDepends && !mods.contains(m_version.extraArguments.depends)) { + extraArguments = ""; + } + } + + if (mainClass.isEmpty() && extraArguments.isEmpty()) { + return true; } auto uuid = QUuid::createUuid(); @@ -461,7 +471,7 @@ bool PackInstallTask::createPackComponent(QString instanceRoot, std::shared_ptr< } // Parse out tweakers - auto args = m_version.extraArguments.split(" "); + auto args = extraArguments.split(" "); QString previous; for(auto arg : args) { if(arg.startsWith("--tweakClass=") || previous == "--tweakClass") { |