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")); emitFailed(tr("Couldn't create the bin folder for Minecraft.jar"));
} }
auto finalJarPath = QDir(m_inst->binRoot()).absoluteFilePath("minecraft.jar"); auto finalJarPath = QDir(m_inst->binRoot()).absoluteFilePath("minecraft.jar");
QFile finalJar(finalJarPath); if(!removeJar())
if(finalJar.exists())
{ {
if(!finalJar.remove()) emitFailed(tr("Couldn't remove stale jar file: %1").arg(finalJarPath));
{
emitFailed(tr("Couldn't remove stale jar file: %1").arg(finalJarPath));
return;
}
} }
// create temporary modded jar, if needed // create temporary modded jar, if needed
@ -64,3 +60,23 @@ void ModMinecraftJar::executeTask()
} }
emitSucceeded(); 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; return false;
} }
void finalize() override;
private:
bool removeJar();
}; };