summaryrefslogtreecommitdiffstats
path: root/api/logic/minecraft/launch/ModMinecraftJar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'api/logic/minecraft/launch/ModMinecraftJar.cpp')
-rw-r--r--api/logic/minecraft/launch/ModMinecraftJar.cpp30
1 files changed, 23 insertions, 7 deletions
diff --git a/api/logic/minecraft/launch/ModMinecraftJar.cpp b/api/logic/minecraft/launch/ModMinecraftJar.cpp
index 9b5d3b20..15bb7bb3 100644
--- a/api/logic/minecraft/launch/ModMinecraftJar.cpp
+++ b/api/logic/minecraft/launch/ModMinecraftJar.cpp
@@ -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;
+}