From eeced36fa2e93c4706e66cbd9041f5b43f76abf3 Mon Sep 17 00:00:00 2001 From: Cat Core <34719527+arthurbambou@users.noreply.github.com> Date: Sat, 7 May 2022 01:31:47 +0200 Subject: [PATCH 1/2] Enable Install Fabric Button on pre-1.14 --- launcher/ui/pages/instance/VersionPage.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/launcher/ui/pages/instance/VersionPage.cpp b/launcher/ui/pages/instance/VersionPage.cpp index 4491729206..ad42431b5b 100644 --- a/launcher/ui/pages/instance/VersionPage.cpp +++ b/launcher/ui/pages/instance/VersionPage.cpp @@ -213,7 +213,7 @@ void VersionPage::updateVersionControls() auto minecraftVersion = Version(m_profile->getComponentVersion("net.minecraft")); bool supportsFabric = minecraftVersion >= Version("1.14"); - ui->actionInstall_Fabric->setEnabled(controlsEnabled && supportsFabric); + ui->actionInstall_Fabric->setEnabled(controlsEnabled); ui->actionInstall_Quilt->setEnabled((controlsEnabled) && supportsFabric); bool supportsLiteLoader = minecraftVersion <= Version("1.12.2"); From f1e7ec2c8bd16a0ae9430156127baff4053f7403 Mon Sep 17 00:00:00 2001 From: Cat Core Date: Sun, 8 May 2022 10:56:35 +0200 Subject: [PATCH 2/2] add Install Legacy Fabric Button --- launcher/minecraft/ComponentUpdateTask.cpp | 2 +- launcher/ui/pages/instance/VersionPage.cpp | 33 ++++++++++++++++++++-- launcher/ui/pages/instance/VersionPage.h | 1 + launcher/ui/pages/instance/VersionPage.ui | 9 ++++++ 4 files changed, 42 insertions(+), 3 deletions(-) diff --git a/launcher/minecraft/ComponentUpdateTask.cpp b/launcher/minecraft/ComponentUpdateTask.cpp index ff7ed0af39..a6fc72a607 100644 --- a/launcher/minecraft/ComponentUpdateTask.cpp +++ b/launcher/minecraft/ComponentUpdateTask.cpp @@ -591,7 +591,7 @@ void ComponentUpdateTask::resolveDependencies(bool checkOnly) { component->m_version = "3.1.2"; } - else if (add.uid == "net.fabricmc.intermediary" || add.uid == "org.quiltmc.hashed") + else if (add.uid == "net.fabricmc.intermediary" || add.uid == "org.quiltmc.hashed" || add.uid == "net.legacyfabric.intermediary") { auto minecraft = std::find_if(components.begin(), components.end(), [](ComponentPtr & cmp){ return cmp->getID() == "net.minecraft"; diff --git a/launcher/ui/pages/instance/VersionPage.cpp b/launcher/ui/pages/instance/VersionPage.cpp index ad42431b5b..4e8c4afacb 100644 --- a/launcher/ui/pages/instance/VersionPage.cpp +++ b/launcher/ui/pages/instance/VersionPage.cpp @@ -213,8 +213,10 @@ void VersionPage::updateVersionControls() auto minecraftVersion = Version(m_profile->getComponentVersion("net.minecraft")); bool supportsFabric = minecraftVersion >= Version("1.14"); - ui->actionInstall_Fabric->setEnabled(controlsEnabled); + bool supportsLegacyFabric = minecraftVersion >= Version("1.3") && minecraftVersion <= Version("1.13.2"); + ui->actionInstall_Fabric->setEnabled(controlsEnabled && supportsFabric); ui->actionInstall_Quilt->setEnabled((controlsEnabled) && supportsFabric); + ui->actionInstall_LegacyFabric->setEnabled((controlsEnabled) && supportsLegacyFabric); bool supportsLiteLoader = minecraftVersion <= Version("1.12.2"); ui->actionInstall_LiteLoader->setEnabled(controlsEnabled && supportsLiteLoader); @@ -365,7 +367,7 @@ void VersionPage::on_actionChange_version_triggered() return; } VersionSelectDialog vselect(list.get(), tr("Change %1 version").arg(name), this); - if (uid == "net.fabricmc.intermediary" || uid == "org.quiltmc.hashed") + if (uid == "net.fabricmc.intermediary" || uid == "org.quiltmc.hashed" || uid == "net.legacyfabric.intermediary") { vselect.setEmptyString(tr("No intermediary mappings versions are currently available.")); vselect.setEmptyErrorString(tr("Couldn't load or download the intermediary mappings version lists!")); @@ -471,6 +473,33 @@ void VersionPage::on_actionInstall_Fabric_triggered() } } +void VersionPage::on_actionInstall_LegacyFabric_triggered() +{ + auto vlist = APPLICATION->metadataIndex()->get("net.legacyfabric.fabric-loader"); + if(!vlist) + { + return; + } + VersionSelectDialog vselect(vlist.get(), tr("Select Fabric Loader version"), this); + vselect.setEmptyString(tr("No Fabric Loader versions are currently available.")); + vselect.setEmptyErrorString(tr("Couldn't load or download the Fabric Loader version lists!")); + + auto currentVersion = m_profile->getComponentVersion("net.legacyfabric.fabric-loader"); + if(!currentVersion.isEmpty()) + { + vselect.setCurrentVersion(currentVersion); + } + + if (vselect.exec() && vselect.selectedVersion()) + { + auto vsn = vselect.selectedVersion(); + m_profile->setComponentVersion("net.legacyfabric.fabric-loader", vsn->descriptor()); + m_profile->resolve(Net::Mode::Online); + preselect(m_profile->rowCount(QModelIndex())-1); + m_container->refreshContainer(); + } +} + void VersionPage::on_actionInstall_Quilt_triggered() { auto vlist = APPLICATION->metadataIndex()->get("org.quiltmc.quilt-loader"); diff --git a/launcher/ui/pages/instance/VersionPage.h b/launcher/ui/pages/instance/VersionPage.h index 9045d4ad18..4c7fd16bd3 100644 --- a/launcher/ui/pages/instance/VersionPage.h +++ b/launcher/ui/pages/instance/VersionPage.h @@ -52,6 +52,7 @@ private slots: void on_actionChange_version_triggered(); void on_actionInstall_Forge_triggered(); void on_actionInstall_Fabric_triggered(); + void on_actionInstall_LegacyFabric_triggered(); void on_actionInstall_Quilt_triggered(); void on_actionAdd_Empty_triggered(); void on_actionInstall_LiteLoader_triggered(); diff --git a/launcher/ui/pages/instance/VersionPage.ui b/launcher/ui/pages/instance/VersionPage.ui index 489f721888..cfc54f4087 100644 --- a/launcher/ui/pages/instance/VersionPage.ui +++ b/launcher/ui/pages/instance/VersionPage.ui @@ -107,6 +107,7 @@ + @@ -193,6 +194,14 @@ Install the Fabric Loader package. + + + Install Legacy Fabric + + + Install the Fabric Loader package for Legacy Fabric. + + Install Quilt