NOISSUE remove the jar-modded jar after the instance finishes

This commit is contained in:
Petr Mrázek 2018-01-08 00:59:47 +01:00
parent 0636c03d7c
commit 1dbc4e16f7
2 changed files with 26 additions and 7 deletions

View File

@ -35,15 +35,11 @@ void ModMinecraftJar::executeTask()
{
emitFailed(tr("Couldn't create the bin folder for Minecraft.jar"));
}
auto finalJarPath = QDir(m_inst->binRoot()).absoluteFilePath("minecraft.jar");
QFile finalJar(finalJarPath);
if(finalJar.exists())
if(!removeJar())
{
if(!finalJar.remove())
{
emitFailed(tr("Couldn't remove stale jar file: %1").arg(finalJarPath));
return;
}
emitFailed(tr("Couldn't remove stale jar file: %1").arg(finalJarPath));
}
// create temporary modded jar, if needed
@ -64,3 +60,23 @@ void ModMinecraftJar::executeTask()
}
emitSucceeded();
}
void ModMinecraftJar::finalize()
{
removeJar();
}
bool ModMinecraftJar::removeJar()
{
auto m_inst = std::dynamic_pointer_cast<MinecraftInstance>(m_parent->instance());
auto finalJarPath = QDir(m_inst->binRoot()).absoluteFilePath("minecraft.jar");
QFile finalJar(finalJarPath);
if(finalJar.exists())
{
if(!finalJar.remove())
{
return false;
}
}
return true;
}

View File

@ -30,4 +30,7 @@ public:
{
return false;
}
void finalize() override;
private:
bool removeJar();
};