aboutsummaryrefslogtreecommitdiff
path: root/launcher/minecraft/PackProfile.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'launcher/minecraft/PackProfile.cpp')
-rw-r--r--launcher/minecraft/PackProfile.cpp25
1 files changed, 15 insertions, 10 deletions
diff --git a/launcher/minecraft/PackProfile.cpp b/launcher/minecraft/PackProfile.cpp
index d53f41e1..87d11c4c 100644
--- a/launcher/minecraft/PackProfile.cpp
+++ b/launcher/minecraft/PackProfile.cpp
@@ -36,6 +36,13 @@
#include "ComponentUpdateTask.h"
#include "Application.h"
+#include "modplatform/ModAPI.h"
+
+static const QMap<QString, ModAPI::ModLoaderType> modloaderMapping{
+ {"net.minecraftforge", ModAPI::Forge},
+ {"net.fabricmc.fabric-loader", ModAPI::Fabric},
+ {"org.quiltmc.quilt-loader", ModAPI::Quilt}
+};
PackProfile::PackProfile(MinecraftInstance * instance)
: QAbstractListModel()
@@ -973,17 +980,15 @@ void PackProfile::disableInteraction(bool disable)
ModAPI::ModLoaderType PackProfile::getModLoader()
{
- if (!getComponentVersion("net.minecraftforge").isEmpty())
- {
- return ModAPI::Forge;
- }
- else if (!getComponentVersion("net.fabricmc.fabric-loader").isEmpty())
- {
- return ModAPI::Fabric;
- }
- else if (!getComponentVersion("org.quiltmc.quilt-loader").isEmpty())
+ QMapIterator<QString, ModAPI::ModLoaderType> i(modloaderMapping);
+
+ while (i.hasNext())
{
- return ModAPI::Quilt;
+ i.next();
+ Component* c = getComponent(i.key());
+ if (c != nullptr && c->isEnabled()) {
+ return i.value();
+ }
}
return ModAPI::Unspecified;
}