diff options
author | Trial97 <alexandru.tripon97@gmail.com> | 2023-08-27 15:53:35 +0300 |
---|---|---|
committer | Trial97 <alexandru.tripon97@gmail.com> | 2023-08-27 15:53:35 +0300 |
commit | c5aac24a93df4961bbd70260ab9812f1fd836779 (patch) | |
tree | 0e0015c7db5e1b74814d4e5f33ac4abc0ad3a672 /launcher/ui/MainWindow.cpp | |
parent | 288d0d1fd4562e4020c964955918a5681b547705 (diff) | |
parent | df14f88307b1b7f7fa305472bd2800896103f879 (diff) | |
download | PrismLauncher-c5aac24a93df4961bbd70260ab9812f1fd836779.tar.gz PrismLauncher-c5aac24a93df4961bbd70260ab9812f1fd836779.tar.bz2 PrismLauncher-c5aac24a93df4961bbd70260ab9812f1fd836779.zip |
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into curse_multiple_loaders2
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
Diffstat (limited to 'launcher/ui/MainWindow.cpp')
-rw-r--r-- | launcher/ui/MainWindow.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/launcher/ui/MainWindow.cpp b/launcher/ui/MainWindow.cpp index 7900e6c4..7a197f62 100644 --- a/launcher/ui/MainWindow.cpp +++ b/launcher/ui/MainWindow.cpp @@ -118,7 +118,9 @@ #include "minecraft/mod/TexturePackFolderModel.h" #include "minecraft/mod/tasks/LocalResourceParse.h" +#include "modplatform/ModIndex.h" #include "modplatform/flame/FlameAPI.h" +#include "modplatform/flame/FlameModIndex.h" #include "KonamiCode.h" @@ -923,6 +925,7 @@ void MainWindow::processURLs(QList<QUrl> urls) if (url.scheme().isEmpty()) url.setScheme("file"); + ModPlatform::IndexedVersion version; QMap<QString, QString> extra_info; QUrl local_url; if (!url.isLocalFile()) { // download the remote resource and identify @@ -948,20 +951,19 @@ void MainWindow::processURLs(QList<QUrl> urls) auto api = FlameAPI(); auto job = api.getFile(addonId, fileId, array); - QString resource_name; - connect(job.get(), &Task::failed, this, [this](QString reason) { CustomMessageBox::selectable(this, tr("Error"), reason, QMessageBox::Critical)->show(); }); - connect(job.get(), &Task::succeeded, this, [this, array, addonId, fileId, &dl_url, &resource_name] { + connect(job.get(), &Task::succeeded, this, [this, array, addonId, fileId, &dl_url, &version] { qDebug() << "Returned CFURL Json:\n" << array->toStdString().c_str(); auto doc = Json::requireDocument(*array); auto data = Json::ensureObject(Json::ensureObject(doc.object()), "data"); // No way to find out if it's a mod or a modpack before here // And also we need to check if it ends with .zip, instead of any better way - auto fileName = Json::ensureString(data, "fileName"); + version = FlameMod::loadIndexedPackVersion(data); + auto fileName = version.fileName; // Have to use ensureString then use QUrl to get proper url encoding - dl_url = QUrl(Json::ensureString(data, "downloadUrl", "", "downloadUrl")); + dl_url = QUrl(version.downloadUrl); if (!dl_url.isValid()) { CustomMessageBox::selectable( this, tr("Error"), @@ -972,7 +974,6 @@ void MainWindow::processURLs(QList<QUrl> urls) } QFileInfo dl_file(dl_url.fileName()); - resource_name = Json::ensureString(data, "displayName", dl_file.completeBaseName(), "displayName"); }); { // drop stack @@ -1047,7 +1048,7 @@ void MainWindow::processURLs(QList<QUrl> urls) qWarning() << "Importing of Data Packs not supported at this time. Ignoring" << localFileName; break; case PackedResourceType::Mod: - minecraftInst->loaderModList()->installMod(localFileName); + minecraftInst->loaderModList()->installMod(localFileName, version); break; case PackedResourceType::ShaderPack: minecraftInst->shaderPackList()->installResource(localFileName); |