summaryrefslogtreecommitdiffstats
path: root/api
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2016-06-07 01:23:31 +0200
committerPetr Mrázek <peterix@gmail.com>2016-06-07 01:23:31 +0200
commit54e5a98da0d0e0c57120728be9d52e33e05a35c5 (patch)
tree2a881b186f53347883cbfadaff4c293594e5cd94 /api
parenta1abbd9e05c80584d831b1d12c27c5f7d731cece (diff)
downloadMultiMC-54e5a98da0d0e0c57120728be9d52e33e05a35c5.tar
MultiMC-54e5a98da0d0e0c57120728be9d52e33e05a35c5.tar.gz
MultiMC-54e5a98da0d0e0c57120728be9d52e33e05a35c5.tar.lz
MultiMC-54e5a98da0d0e0c57120728be9d52e33e05a35c5.tar.xz
MultiMC-54e5a98da0d0e0c57120728be9d52e33e05a35c5.zip
NOISSUE refactor liteloader version file creation
It no longer implements yet another version file format serialization
Diffstat (limited to 'api')
-rw-r--r--api/logic/minecraft/liteloader/LiteLoaderInstaller.cpp70
-rw-r--r--api/logic/minecraft/liteloader/LiteLoaderVersionList.h17
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<LiteLoaderVersion>(m_version);
+ LiteLoaderVersionPtr liteloaderVersion = std::dynamic_pointer_cast<LiteLoaderVersion>(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 <minecraft/Library.h>
+#include <minecraft/VersionFile.h>
#include "multimc_logic_export.h"
@@ -49,6 +50,22 @@ public:
{
return version;
}
+ VersionFilePtr getVersionFile()
+ {
+ auto f = std::make_shared<VersionFile>();
+ f->mainClass = "net.minecraft.launchwrapper.Launch";
+ f->addTweakers += tweakClass;
+ f->order = 10;
+ f->libraries = libraries;
+ auto liteloaderLib = std::make_shared<Library>("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;