diff options
| author | Sefa Eyeoglu <contact@scrumplex.net> | 2023-03-01 09:49:47 +0100 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-01 09:49:47 +0100 | 
| commit | 4878f1a4386b921e16b9f460cb860b92d0ab88fc (patch) | |
| tree | d37c8accb08a793a2ac1f2de0dea179b48765f1b /launcher/minecraft | |
| parent | 8ce8055aeb3e610088ff5a08f509862c1feafd8f (diff) | |
| parent | 199a7df807994ded1469cc893e6c68c21307444f (diff) | |
| download | PrismLauncher-4878f1a4386b921e16b9f460cb860b92d0ab88fc.tar.gz PrismLauncher-4878f1a4386b921e16b9f460cb860b92d0ab88fc.tar.bz2 PrismLauncher-4878f1a4386b921e16b9f460cb860b92d0ab88fc.zip | |
Merge pull request #735 from Scrumplex/import-component
Diffstat (limited to 'launcher/minecraft')
| -rw-r--r-- | launcher/minecraft/PackProfile.cpp | 39 | ||||
| -rw-r--r-- | launcher/minecraft/PackProfile.h | 10 | 
2 files changed, 45 insertions, 4 deletions
| diff --git a/launcher/minecraft/PackProfile.cpp b/launcher/minecraft/PackProfile.cpp index da7c1d84..13da57d9 100644 --- a/launcher/minecraft/PackProfile.cpp +++ b/launcher/minecraft/PackProfile.cpp @@ -1,7 +1,10 @@ -// SPDX-License-Identifier: GPL-3.0-only +// SPDX-FileCopyrightText: 2022-2023 Sefa Eyeoglu <contact@scrumplex.net> +// +// SPDX-License-Identifier: GPL-3.0-only AND Apache-2.0 +  /*   *  Prism Launcher - Minecraft Launcher - *  Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net> + *  Copyright (C) 2022-2023 Sefa Eyeoglu <contact@scrumplex.net>   *  Copyright (C) 2022 TheKodeToad <TheKodeToad@proton.me>   *   *  This program is free software: you can redistribute it and/or modify @@ -49,6 +52,7 @@  #include "minecraft/OneSixVersionFormat.h"  #include "FileSystem.h"  #include "minecraft/MinecraftInstance.h" +#include "minecraft/ProfileUtils.h"  #include "Json.h"  #include "PackProfile.h" @@ -730,16 +734,47 @@ void PackProfile::invalidateLaunchProfile()  void PackProfile::installJarMods(QStringList selectedFiles)  { +    // FIXME: get rid of _internal      installJarMods_internal(selectedFiles);  }  void PackProfile::installCustomJar(QString selectedFile)  { +    // FIXME: get rid of _internal      installCustomJar_internal(selectedFile);  } +bool PackProfile::installComponents(QStringList selectedFiles) +{ +    const QString patchDir = FS::PathCombine(d->m_instance->instanceRoot(), "patches"); +    if (!FS::ensureFolderPathExists(patchDir)) +        return false; + +    bool result = true; +    for (const QString& source : selectedFiles) { +        const QFileInfo sourceInfo(source); + +        auto versionFile = ProfileUtils::parseJsonFile(sourceInfo, false); +        const QString target = FS::PathCombine(patchDir, versionFile->uid + ".json"); + +        if (!QFile::copy(source, target)) { +            qWarning() << "Component" << source << "could not be copied to target" << target; +            result = false; +            continue; +        } + +        appendComponent(new Component(this, versionFile->uid, versionFile)); +    } + +    scheduleSave(); +    invalidateLaunchProfile(); + +    return result; +} +  void PackProfile::installAgents(QStringList selectedFiles)  { +    // FIXME: get rid of _internal      installAgents_internal(selectedFiles);  } diff --git a/launcher/minecraft/PackProfile.h b/launcher/minecraft/PackProfile.h index 731cd0ba..d144d875 100644 --- a/launcher/minecraft/PackProfile.h +++ b/launcher/minecraft/PackProfile.h @@ -1,7 +1,10 @@ -// SPDX-License-Identifier: GPL-3.0-only +// SPDX-FileCopyrightText: 2022-2023 Sefa Eyeoglu <contact@scrumplex.net> +// +// SPDX-License-Identifier: GPL-3.0-only AND Apache-2.0 +  /*   *  Prism Launcher - Minecraft Launcher - *  Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net> + *  Copyright (C) 2022-2023 Sefa Eyeoglu <contact@scrumplex.net>   *  Copyright (C) 2022 TheKodeToad <TheKodeToad@proton.me>   *   *  This program is free software: you can redistribute it and/or modify @@ -86,6 +89,9 @@ public:      /// install a jar/zip as a replacement for the main jar      void installCustomJar(QString selectedFile); +    /// install MMC/Prism component files +    bool installComponents(QStringList selectedFiles); +      /// install Java agent files      void installAgents(QStringList selectedFiles); | 
