aboutsummaryrefslogtreecommitdiff
path: root/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp
diff options
context:
space:
mode:
authorJamie Mansfield <jmansfield@cadixdev.org>2022-05-23 19:42:04 +0100
committerJamie Mansfield <jmansfield@cadixdev.org>2022-05-23 20:57:14 +0100
commitf28a0aa666565354e657dec59249aa1fd237cdb0 (patch)
tree0c60234bd22ce0ee8bdcfe96207ccfb03b36455c /launcher/modplatform/atlauncher/ATLPackInstallTask.cpp
parentdca4ea5ceaa30f1285570d2bf32ea112118b9204 (diff)
downloadPrismLauncher-f28a0aa666565354e657dec59249aa1fd237cdb0.tar.gz
PrismLauncher-f28a0aa666565354e657dec59249aa1fd237cdb0.tar.bz2
PrismLauncher-f28a0aa666565354e657dec59249aa1fd237cdb0.zip
ATLauncher: Handle main class depends
Diffstat (limited to 'launcher/modplatform/atlauncher/ATLPackInstallTask.cpp')
-rw-r--r--launcher/modplatform/atlauncher/ATLPackInstallTask.cpp20
1 files changed, 17 insertions, 3 deletions
diff --git a/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp b/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp
index 9b14f355..e6fd1334 100644
--- a/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp
+++ b/launcher/modplatform/atlauncher/ATLPackInstallTask.cpp
@@ -414,10 +414,24 @@ bool PackInstallTask::createLibrariesComponent(QString instanceRoot, std::shared
bool PackInstallTask::createPackComponent(QString instanceRoot, std::shared_ptr<PackProfile> profile)
{
- if(m_version.mainClass == QString() && m_version.extraArguments == QString()) {
+ if (m_version.mainClass.mainClass.isEmpty() && m_version.extraArguments.isEmpty()) {
return true;
}
+ auto mainClass = m_version.mainClass.mainClass;
+
+ auto hasMainClassDepends = !m_version.mainClass.depends.isEmpty();
+ if (hasMainClassDepends) {
+ QSet<QString> mods;
+ for (const auto& item : m_version.mods) {
+ mods.insert(item.name);
+ }
+
+ if (hasMainClassDepends && !mods.contains(m_version.mainClass.depends)) {
+ mainClass = "";
+ }
+ }
+
auto uuid = QUuid::createUuid();
auto id = uuid.toString().remove('{').remove('}');
auto target_id = "org.multimc.atlauncher." + id;
@@ -442,8 +456,8 @@ bool PackInstallTask::createPackComponent(QString instanceRoot, std::shared_ptr<
auto f = std::make_shared<VersionFile>();
f->name = m_pack + " " + m_version_name;
- if(m_version.mainClass != QString() && !mainClasses.contains(m_version.mainClass)) {
- f->mainClass = m_version.mainClass;
+ if (!mainClass.isEmpty() && !mainClasses.contains(mainClass)) {
+ f->mainClass = mainClass;
}
// Parse out tweakers