diff options
Diffstat (limited to 'logic/minecraft/MinecraftVersionList.cpp')
-rw-r--r-- | logic/minecraft/MinecraftVersionList.cpp | 65 |
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 |