From fd34ca5a0f4492c4b280df8aa3d9d82154b5d9bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Thu, 17 Nov 2016 01:21:49 +0100 Subject: NOISSUE always run the ExtractNatives task during launch The task now checks the conditions, giving the update process time to supply all the metadata. --- api/logic/minecraft/launch/ExtractNatives.cpp | 15 ++++++++++++++- api/logic/minecraft/launch/ExtractNatives.h | 5 +++-- 2 files changed, 17 insertions(+), 3 deletions(-) (limited to 'api/logic/minecraft/launch') diff --git a/api/logic/minecraft/launch/ExtractNatives.cpp b/api/logic/minecraft/launch/ExtractNatives.cpp index 089e2559..30b5197b 100644 --- a/api/logic/minecraft/launch/ExtractNatives.cpp +++ b/api/logic/minecraft/launch/ExtractNatives.cpp @@ -71,8 +71,13 @@ void ExtractNatives::executeTask() { auto instance = m_parent->instance(); std::shared_ptr minecraftInstance = std::dynamic_pointer_cast(instance); - auto outputPath = minecraftInstance->getNativePath(); auto toExtract = minecraftInstance->getNativeJars(); + if(toExtract.isEmpty()) + { + emitSucceeded(); + return; + } + auto outputPath = minecraftInstance->getNativePath(); auto javaVersion = minecraftInstance->getJavaVersion(); bool jniHackEnabled = javaVersion.major() >= 8; for(const auto &source: toExtract) @@ -84,3 +89,11 @@ void ExtractNatives::executeTask() } emitSucceeded(); } + +void ExtractNatives::finalize() +{ + auto instance = m_parent->instance(); + QString target_dir = FS::PathCombine(instance->instanceRoot(), "natives/"); + QDir dir(target_dir); + dir.removeRecursively(); +} diff --git a/api/logic/minecraft/launch/ExtractNatives.h b/api/logic/minecraft/launch/ExtractNatives.h index 699657d7..0c5c831c 100644 --- a/api/logic/minecraft/launch/ExtractNatives.h +++ b/api/logic/minecraft/launch/ExtractNatives.h @@ -27,11 +27,12 @@ public: explicit ExtractNatives(LaunchTask *parent) : LaunchStep(parent){}; virtual ~ExtractNatives(){}; - virtual void executeTask(); - virtual bool canAbort() const + void executeTask() override; + bool canAbort() const override { return false; } + void finalize() override; }; -- cgit v1.2.3