From 54e5a98da0d0e0c57120728be9d52e33e05a35c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Tue, 7 Jun 2016 01:23:31 +0200 Subject: NOISSUE refactor liteloader version file creation It no longer implements yet another version file format serialization --- .../minecraft/liteloader/LiteLoaderInstaller.cpp | 70 ++++++---------------- .../minecraft/liteloader/LiteLoaderVersionList.h | 17 ++++++ 2 files changed, 34 insertions(+), 53 deletions(-) diff --git a/api/logic/minecraft/liteloader/LiteLoaderInstaller.cpp b/api/logic/minecraft/liteloader/LiteLoaderInstaller.cpp index 25297fa4..f0c7058a 100644 --- a/api/logic/minecraft/liteloader/LiteLoaderInstaller.cpp +++ b/api/logic/minecraft/liteloader/LiteLoaderInstaller.cpp @@ -41,34 +41,6 @@ bool LiteLoaderInstaller::add(OneSixInstance *to) { return false; } - - QJsonObject obj; - - obj.insert("mainClass", QString("net.minecraft.launchwrapper.Launch")); - obj.insert("+tweakers", QJsonArray::fromStringList(QStringList() << m_version->tweakClass)); - obj.insert("order", 10); - - QJsonArray libraries; - - for (auto Library : m_version->libraries) - { - libraries.append(OneSixVersionFormat::libraryToJson(Library.get())); - } - - // liteloader - { - Library liteloaderLib("com.mumfrey:liteloader:" + m_version->version); - liteloaderLib.setAbsoluteUrl(QString("http://dl.liteloader.com/versions/com/mumfrey/liteloader/%1/%2").arg(m_version->mcVersion, m_version->file)); - QJsonObject llLibObj = OneSixVersionFormat::libraryToJson(&liteloaderLib); - libraries.append(llLibObj); - } - - obj.insert("+libraries", libraries); - obj.insert("name", QString("LiteLoader")); - obj.insert("fileId", id()); - obj.insert("version", m_version->version); - obj.insert("mcVersion", to->intendedVersionId()); - QFile file(filename(to->instanceRoot())); if (!file.open(QFile::WriteOnly)) { @@ -76,7 +48,7 @@ bool LiteLoaderInstaller::add(OneSixInstance *to) << "for reading:" << file.errorString(); return false; } - file.write(QJsonDocument(obj).toJson()); + file.write(OneSixVersionFormat::versionFileToJson(m_version->getVersionFile(), true).toJson()); file.close(); return true; @@ -86,8 +58,7 @@ class LiteLoaderInstallTask : public Task { Q_OBJECT public: - LiteLoaderInstallTask(LiteLoaderInstaller *installer, OneSixInstance *instance, - BaseVersionPtr version, QObject *parent) + LiteLoaderInstallTask(LiteLoaderInstaller *installer, OneSixInstance *instance, BaseVersionPtr version, QObject *parent) : Task(parent), m_installer(installer), m_instance(instance), m_version(version) { } @@ -95,8 +66,7 @@ public: protected: void executeTask() override { - LiteLoaderVersionPtr liteloaderVersion = - std::dynamic_pointer_cast(m_version); + LiteLoaderVersionPtr liteloaderVersion = std::dynamic_pointer_cast(m_version); if (!liteloaderVersion) { return; @@ -104,25 +74,21 @@ protected: m_installer->prepare(liteloaderVersion); if (!m_installer->add(m_instance)) { - emitFailed(tr("For reasons unknown, the LiteLoader installation failed. Check your " - "MultiMC log files for details.")); + emitFailed(tr("For reasons unknown, the LiteLoader installation failed. Check your MultiMC log files for details.")); + return; + } + try + { + m_instance->reloadProfile(); + emitSucceeded(); + } + catch (Exception &e) + { + emitFailed(e.cause()); } - else + catch (...) { - try - { - m_instance->reloadProfile(); - emitSucceeded(); - } - catch (Exception &e) - { - emitFailed(e.cause()); - } - catch (...) - { - emitFailed( - tr("Failed to load the version description file for reasons unknown.")); - } + emitFailed(tr("Failed to load the version description file for reasons unknown.")); } } @@ -132,9 +98,7 @@ private: BaseVersionPtr m_version; }; -Task *LiteLoaderInstaller::createInstallTask(OneSixInstance *instance, - BaseVersionPtr version, - QObject *parent) +Task *LiteLoaderInstaller::createInstallTask(OneSixInstance *instance, BaseVersionPtr version, QObject *parent) { return new LiteLoaderInstallTask(this, instance, version, parent); } diff --git a/api/logic/minecraft/liteloader/LiteLoaderVersionList.h b/api/logic/minecraft/liteloader/LiteLoaderVersionList.h index ae8bee92..b85b9f0c 100644 --- a/api/logic/minecraft/liteloader/LiteLoaderVersionList.h +++ b/api/logic/minecraft/liteloader/LiteLoaderVersionList.h @@ -24,6 +24,7 @@ #include "tasks/Task.h" #include "net/NetJob.h" #include +#include #include "multimc_logic_export.h" @@ -49,6 +50,22 @@ public: { return version; } + VersionFilePtr getVersionFile() + { + auto f = std::make_shared(); + f->mainClass = "net.minecraft.launchwrapper.Launch"; + f->addTweakers += tweakClass; + f->order = 10; + f->libraries = libraries; + auto liteloaderLib = std::make_shared("com.mumfrey:liteloader:" + version); + liteloaderLib->setAbsoluteUrl(QString("http://dl.liteloader.com/versions/com/mumfrey/liteloader/%1/%2").arg(mcVersion, file)); + f->libraries.append(liteloaderLib); + f->name = "LiteLoader"; + f->fileId = "com.mumfrey.liteloader"; + f->version = version; + f->minecraftVersion = mcVersion; + return f; + } // important info QString version; -- cgit v1.2.3