GH-3602 Create .minecraft before running pre-launch commands

This commit is contained in:
Petr Mrázek
2021-03-10 03:52:35 +01:00
parent 0a869fc9ed
commit 0c98589a7f
5 changed files with 42 additions and 32 deletions

View File

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