summaryrefslogtreecommitdiffstats
path: root/logic/minecraft/MinecraftVersionList.cpp
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2015-01-27 22:31:07 +0100
committerPetr Mrázek <peterix@gmail.com>2015-04-02 00:14:06 +0200
commit791221e923586bb717396ecf18bd13e57034df99 (patch)
tree9f608af07375b38626c8964671620477158341ba /logic/minecraft/MinecraftVersionList.cpp
parent593111b14463e9d5d08256061b981b5ab1cfb710 (diff)
downloadMultiMC-791221e923586bb717396ecf18bd13e57034df99.tar
MultiMC-791221e923586bb717396ecf18bd13e57034df99.tar.gz
MultiMC-791221e923586bb717396ecf18bd13e57034df99.tar.lz
MultiMC-791221e923586bb717396ecf18bd13e57034df99.tar.xz
MultiMC-791221e923586bb717396ecf18bd13e57034df99.zip
NOISSUE Refactors and moving of things
Diffstat (limited to 'logic/minecraft/MinecraftVersionList.cpp')
-rw-r--r--logic/minecraft/MinecraftVersionList.cpp65
1 files changed, 48 insertions, 17 deletions
diff --git a/logic/minecraft/MinecraftVersionList.cpp b/logic/minecraft/MinecraftVersionList.cpp
index a93ea301..68e93d54 100644
--- a/logic/minecraft/MinecraftVersionList.cpp
+++ b/logic/minecraft/MinecraftVersionList.cpp
@@ -25,12 +25,53 @@
#include "logic/net/URLConstants.h"
#include "ParseUtils.h"
+#include "ProfileUtils.h"
#include "VersionBuilder.h"
-#include <logic/VersionFilterData.h>
+#include "VersionFilterData.h"
+
#include <pathutils.h>
static const char * localVersionCache = "versions/versions.dat";
+class MCVListLoadTask : public Task
+{
+ Q_OBJECT
+
+public:
+ explicit MCVListLoadTask(MinecraftVersionList *vlist);
+ virtual ~MCVListLoadTask() override{};
+
+ virtual void executeTask() override;
+
+protected
+slots:
+ void list_downloaded();
+
+protected:
+ QNetworkReply *vlistReply;
+ MinecraftVersionList *m_list;
+ MinecraftVersion *m_currentStable;
+};
+
+class MCVListVersionUpdateTask : public Task
+{
+ Q_OBJECT
+
+public:
+ explicit MCVListVersionUpdateTask(MinecraftVersionList *vlist, QString updatedVersion);
+ virtual ~MCVListVersionUpdateTask() override{};
+ virtual void executeTask() override;
+
+protected
+slots:
+ void json_downloaded();
+
+protected:
+ NetJobPtr specificVersionDownloadJob;
+ QString versionToUpdate;
+ MinecraftVersionList *m_list;
+};
+
class ListLoadError : public MMCError
{
public:
@@ -442,21 +483,9 @@ void MCVListVersionUpdateTask::json_downloaded()
emitFailed(tr("Couldn't process version file: %1").arg(e.cause()));
return;
}
- QList<RawLibraryPtr> filteredLibs;
- QList<RawLibraryPtr> lwjglLibs;
- for (auto lib : file->overwriteLibs)
- {
- if (g_VersionFilterData.lwjglWhitelist.contains(lib->artifactPrefix()))
- {
- lwjglLibs.append(lib);
- }
- else
- {
- filteredLibs.append(lib);
- }
- }
- file->overwriteLibs = filteredLibs;
+ // Strip LWJGL from the version file. We use our own.
+ ProfileUtils::removeLwjglFromPatch(file);
// TODO: recognize and add LWJGL versions here.
@@ -523,7 +552,7 @@ void MinecraftVersionList::saveCachedList()
entriesArr.append(entryObj);
}
toplevel.insert("versions", entriesArr);
-
+
{
bool someLatest = false;
QJsonObject latestObj;
@@ -542,7 +571,7 @@ void MinecraftVersionList::saveCachedList()
toplevel.insert("latest", latestObj);
}
}
-
+
QJsonDocument doc(toplevel);
QByteArray jsonData = doc.toBinaryData();
qint64 result = tfile.write(jsonData);
@@ -593,3 +622,5 @@ void MinecraftVersionList::finalizeUpdate(QString version)
saveCachedList();
}
+
+#include "MinecraftVersionList.moc" \ No newline at end of file