aboutsummaryrefslogtreecommitdiff
path: root/api/logic/minecraft/launch
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2021-03-10 03:52:35 +0100
committerPetr Mrázek <peterix@gmail.com>2021-03-10 03:58:24 +0100
commit0c98589a7f9115075f2c51f5ad134dce3d244aba (patch)
tree23a90b7e20e0e36c66799bdff564e8febe6db1c6 /api/logic/minecraft/launch
parent0a869fc9ed23280b96f79c3e3730f76d8d169630 (diff)
downloadPrismLauncher-0c98589a7f9115075f2c51f5ad134dce3d244aba.tar.gz
PrismLauncher-0c98589a7f9115075f2c51f5ad134dce3d244aba.tar.bz2
PrismLauncher-0c98589a7f9115075f2c51f5ad134dce3d244aba.zip
GH-3602 Create .minecraft before running pre-launch commands
Diffstat (limited to 'api/logic/minecraft/launch')
-rw-r--r--api/logic/minecraft/launch/CreateGameFolders.cpp28
-rw-r--r--api/logic/minecraft/launch/CreateGameFolders.h (renamed from api/logic/minecraft/launch/CreateServerResourcePacksFolder.h)8
-rw-r--r--api/logic/minecraft/launch/CreateServerResourcePacksFolder.cpp19
3 files changed, 32 insertions, 23 deletions
diff --git a/api/logic/minecraft/launch/CreateGameFolders.cpp b/api/logic/minecraft/launch/CreateGameFolders.cpp
new file mode 100644
index 00000000..415b7e23
--- /dev/null
+++ b/api/logic/minecraft/launch/CreateGameFolders.cpp
@@ -0,0 +1,28 @@
+#include "CreateGameFolders.h"
+#include "minecraft/MinecraftInstance.h"
+#include "launch/LaunchTask.h"
+#include "FileSystem.h"
+
+CreateGameFolders::CreateGameFolders(LaunchTask* parent): LaunchStep(parent)
+{
+}
+
+void CreateGameFolders::executeTask()
+{
+ auto instance = m_parent->instance();
+ std::shared_ptr<MinecraftInstance> minecraftInstance = std::dynamic_pointer_cast<MinecraftInstance>(instance);
+
+ if(!FS::ensureFolderPathExists(minecraftInstance->gameRoot()))
+ {
+ emit logLine("Couldn't create the main game folder", MessageLevel::Error);
+ emitFailed("Couldn't create the main game folder");
+ return;
+ }
+
+ // HACK: this is a workaround for MCL-3732 - 'server-resource-packs' folder is created.
+ if(!FS::ensureFolderPathExists(FS::PathCombine(minecraftInstance->gameRoot(), "server-resource-packs")))
+ {
+ emit logLine("Couldn't create the 'server-resource-packs' folder", MessageLevel::Error);
+ }
+ emitSucceeded();
+}
diff --git a/api/logic/minecraft/launch/CreateServerResourcePacksFolder.h b/api/logic/minecraft/launch/CreateGameFolders.h
index d6b9e15a..9c7d3c94 100644
--- a/api/logic/minecraft/launch/CreateServerResourcePacksFolder.h
+++ b/api/logic/minecraft/launch/CreateGameFolders.h
@@ -19,13 +19,13 @@
#include <LoggedProcess.h>
#include <minecraft/auth/AuthSession.h>
-// HACK: this is a workaround for MCL-3732 - 'server-resource-packs' folder is created.
-class CreateServerResourcePacksFolder: public LaunchStep
+// Create the main .minecraft for the instance and any other necessary folders
+class CreateGameFolders: public LaunchStep
{
Q_OBJECT
public:
- explicit CreateServerResourcePacksFolder(LaunchTask *parent);
- virtual ~CreateServerResourcePacksFolder() {};
+ explicit CreateGameFolders(LaunchTask *parent);
+ virtual ~CreateGameFolders() {};
virtual void executeTask();
virtual bool canAbort() const
diff --git a/api/logic/minecraft/launch/CreateServerResourcePacksFolder.cpp b/api/logic/minecraft/launch/CreateServerResourcePacksFolder.cpp
deleted file mode 100644
index ae426e31..00000000
--- a/api/logic/minecraft/launch/CreateServerResourcePacksFolder.cpp
+++ /dev/null
@@ -1,19 +0,0 @@
-#include "CreateServerResourcePacksFolder.h"
-#include "minecraft/MinecraftInstance.h"
-#include "launch/LaunchTask.h"
-#include "FileSystem.h"
-
-CreateServerResourcePacksFolder::CreateServerResourcePacksFolder(LaunchTask* parent): LaunchStep(parent)
-{
-}
-
-void CreateServerResourcePacksFolder::executeTask()
-{
- auto instance = m_parent->instance();
- std::shared_ptr<MinecraftInstance> minecraftInstance = std::dynamic_pointer_cast<MinecraftInstance>(instance);
- if(!FS::ensureFolderPathExists(FS::PathCombine(minecraftInstance->gameRoot(), "server-resource-packs")))
- {
- emit logLine(tr("Couldn't create the 'server-resource-packs' folder"), MessageLevel::Error);
- }
- emitSucceeded();
-}