NOISSUE always run the ExtractNatives task during launch

The task now checks the conditions, giving the update process time
to supply all the metadata.
This commit is contained in:
Petr Mrázek
2016-11-17 01:21:49 +01:00
parent 9cf8b42d89
commit fd34ca5a0f
10 changed files with 17 additions and 33 deletions

View File

@ -450,8 +450,6 @@ std::shared_ptr<LaunchTask> MinecraftInstance::createLaunchTask(AuthSessionPtr s
}
// extract native jars if needed
auto jars = getNativeJars();
if(jars.size())
{
auto step = std::make_shared<ExtractNatives>(pptr);
process->appendStep(step);

View File

@ -71,8 +71,13 @@ void ExtractNatives::executeTask()
{
auto instance = m_parent->instance();
std::shared_ptr<MinecraftInstance> minecraftInstance = std::dynamic_pointer_cast<MinecraftInstance>(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();
}

View File

@ -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;
};

View File

@ -224,12 +224,6 @@ QStringList LegacyInstance::validLaunchMethods()
return {"Legacy"};
}
void LegacyInstance::cleanupAfterRun()
{
// FIXME: delete the launcher and icons and whatnot.
}
std::shared_ptr<ModList> LegacyInstance::coreModList() const
{
if (!core_mod_list)

View File

@ -117,8 +117,6 @@ public:
virtual std::shared_ptr<Task> createJarModdingTask() override;
virtual QString createLaunchScript(AuthSessionPtr session) override;
virtual void cleanupAfterRun() override;
virtual QString typeName() const override;
bool canExport() const override

View File

@ -425,13 +425,6 @@ std::shared_ptr<Task> OneSixInstance::createJarModdingTask()
return std::make_shared<JarModTask>(std::dynamic_pointer_cast<OneSixInstance>(shared_from_this()));
}
void OneSixInstance::cleanupAfterRun()
{
QString target_dir = FS::PathCombine(instanceRoot(), "natives/");
QDir dir(target_dir);
dir.removeRecursively();
}
std::shared_ptr<ModList> OneSixInstance::loaderModList() const
{
if (!m_loader_mod_list)

View File

@ -57,8 +57,6 @@ public:
virtual QString createLaunchScript(AuthSessionPtr session) override;
QStringList verboseDescription(AuthSessionPtr session) override;
virtual void cleanupAfterRun() override;
virtual QString intendedVersionId() const override;
virtual bool setIntendedVersionId(QString version) override;