From b6d7ffab477cbd7d6c49c4c16ec1de615279e7ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sun, 13 Apr 2014 23:06:28 +0200 Subject: Detect and report missing local libraries. --- logic/OneSixUpdate.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'logic/OneSixUpdate.cpp') diff --git a/logic/OneSixUpdate.cpp b/logic/OneSixUpdate.cpp index cddd0def..27bc415f 100644 --- a/logic/OneSixUpdate.cpp +++ b/logic/OneSixUpdate.cpp @@ -268,10 +268,16 @@ void OneSixUpdate::jarlibStart() auto metacache = MMC->metacache(); QList ForgeLibs; + QList> brokenLocalLibs; + for (auto lib : libs) { if (lib->hint() == "local") + { + if(!lib->filesExist()) + brokenLocalLibs.append(lib); continue; + } QString raw_storage = lib->storagePath(); QString raw_dl = lib->downloadUrl(); @@ -305,6 +311,18 @@ void OneSixUpdate::jarlibStart() f(raw_storage, raw_dl); } } + if(!brokenLocalLibs.empty()) + { + jarlibDownloadJob.reset(); + QStringList failed; + for(auto brokenLib : brokenLocalLibs) + { + failed.append(brokenLib->files()); + } + QString failed_all = failed.join("\n"); + emitFailed(tr("Some libraries marked as 'local' are missing their jar files:\n%1\n\nYou'll have to correct this problem manually. If this is an externally tracked instance, make sure to run it at least once outside of MultiMC.").arg(failed_all)); + return; + } // TODO: think about how to propagate this from the original json file... or IF AT ALL QString forgeMirrorList = "http://files.minecraftforge.net/mirror-brand.list"; if (!ForgeLibs.empty()) -- cgit v1.2.3