diff options
author | TheKodeToad <TheKodeToad@proton.me> | 2023-08-27 18:21:14 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-27 18:21:14 +0100 |
commit | 9110fbf2829a48c36fe37cabfb438e165956bbcf (patch) | |
tree | c7f63d81c29dfbe4b2c2ecc9ad1b1525bd7499a6 /launcher/minecraft/PackProfile.cpp | |
parent | e3b04d10cf4a234a1735b145a0a594b9241c84d1 (diff) | |
parent | c5aac24a93df4961bbd70260ab9812f1fd836779 (diff) | |
download | PrismLauncher-9110fbf2829a48c36fe37cabfb438e165956bbcf.tar.gz PrismLauncher-9110fbf2829a48c36fe37cabfb438e165956bbcf.tar.bz2 PrismLauncher-9110fbf2829a48c36fe37cabfb438e165956bbcf.zip |
Merge pull request #1560 from Trial97/curse_multiple_loaders2
Add suport for flame multiple loaders
Diffstat (limited to 'launcher/minecraft/PackProfile.cpp')
-rw-r--r-- | launcher/minecraft/PackProfile.cpp | 36 |
1 files changed, 25 insertions, 11 deletions
diff --git a/launcher/minecraft/PackProfile.cpp b/launcher/minecraft/PackProfile.cpp index 92988808..9e42c5dd 100644 --- a/launcher/minecraft/PackProfile.cpp +++ b/launcher/minecraft/PackProfile.cpp @@ -58,15 +58,14 @@ #include "ComponentUpdateTask.h" #include "PackProfile.h" #include "PackProfile_p.h" +#include "minecraft/mod/Mod.h" +#include "modplatform/ModIndex.h" -#include "Application.h" -#include "modplatform/ResourceAPI.h" - -static const QMap<QString, ResourceAPI::ModLoaderType> modloaderMapping{ { "net.neoforged", ResourceAPI::NeoForge }, - { "net.minecraftforge", ResourceAPI::Forge }, - { "net.fabricmc.fabric-loader", ResourceAPI::Fabric }, - { "org.quiltmc.quilt-loader", ResourceAPI::Quilt }, - { "com.mumfrey.liteloader", ResourceAPI::LiteLoader } }; +static const QMap<QString, ModPlatform::ModLoaderType> modloaderMapping{ { "net.neoforged", ModPlatform::NeoForge }, + { "net.minecraftforge", ModPlatform::Forge }, + { "net.fabricmc.fabric-loader", ModPlatform::Fabric }, + { "org.quiltmc.quilt-loader", ModPlatform::Quilt }, + { "com.mumfrey.liteloader", ModPlatform::LiteLoader } }; PackProfile::PackProfile(MinecraftInstance* instance) : QAbstractListModel() { @@ -990,12 +989,12 @@ void PackProfile::disableInteraction(bool disable) } } -std::optional<ResourceAPI::ModLoaderTypes> PackProfile::getModLoaders() +std::optional<ModPlatform::ModLoaderTypes> PackProfile::getModLoaders() { - ResourceAPI::ModLoaderTypes result; + ModPlatform::ModLoaderTypes result; bool has_any_loader = false; - QMapIterator<QString, ResourceAPI::ModLoaderType> i(modloaderMapping); + QMapIterator<QString, ModPlatform::ModLoaderType> i(modloaderMapping); while (i.hasNext()) { i.next(); @@ -1009,3 +1008,18 @@ std::optional<ResourceAPI::ModLoaderTypes> PackProfile::getModLoaders() return {}; return result; } + +std::optional<ModPlatform::ModLoaderTypes> PackProfile::getSupportedModLoaders() +{ + auto loadersOpt = getModLoaders(); + if (!loadersOpt.has_value()) + return loadersOpt; + auto loaders = loadersOpt.value(); + // TODO: remove this or add version condition once Quilt drops official Fabric support + if (loaders & ModPlatform::Quilt) + loaders |= ModPlatform::Fabric; + // TODO: remove this or add version condition once NeoForge drops official Forge support + if (loaders & ModPlatform::NeoForge) + loaders |= ModPlatform::Forge; + return loaders; +} |