aboutsummaryrefslogtreecommitdiff
path: root/launcher/minecraft/mod/tasks/ModFolderLoadTask.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'launcher/minecraft/mod/tasks/ModFolderLoadTask.cpp')
-rw-r--r--launcher/minecraft/mod/tasks/ModFolderLoadTask.cpp28
1 files changed, 18 insertions, 10 deletions
diff --git a/launcher/minecraft/mod/tasks/ModFolderLoadTask.cpp b/launcher/minecraft/mod/tasks/ModFolderLoadTask.cpp
index e94bdee9..5afbb08a 100644
--- a/launcher/minecraft/mod/tasks/ModFolderLoadTask.cpp
+++ b/launcher/minecraft/mod/tasks/ModFolderLoadTask.cpp
@@ -1,6 +1,7 @@
#include "ModFolderLoadTask.h"
#include <QDebug>
+#include "Application.h"
#include "minecraft/mod/MetadataHandler.h"
ModFolderLoadTask::ModFolderLoadTask(QDir& mods_dir, QDir& index_dir)
@@ -9,16 +10,9 @@ ModFolderLoadTask::ModFolderLoadTask(QDir& mods_dir, QDir& index_dir)
void ModFolderLoadTask::run()
{
- // Read metadata first
- m_index_dir.refresh();
- for (auto entry : m_index_dir.entryList()) {
- // QDir::Filter::NoDotAndDotDot seems to exclude all files for some reason...
- if (entry == "." || entry == "..")
- continue;
-
- entry.chop(5); // Remove .toml at the end
- Mod mod(m_mods_dir, Metadata::get(m_index_dir, entry));
- m_result->mods[mod.internal_id()] = mod;
+ if (!APPLICATION->settings()->get("DontUseModMetadata").toBool()) {
+ // Read metadata first
+ getFromMetadata();
}
// Read JAR files that don't have metadata
@@ -31,3 +25,17 @@ void ModFolderLoadTask::run()
emit succeeded();
}
+
+void ModFolderLoadTask::getFromMetadata()
+{
+ m_index_dir.refresh();
+ for (auto entry : m_index_dir.entryList()) {
+ // QDir::Filter::NoDotAndDotDot seems to exclude all files for some reason...
+ if (entry == "." || entry == "..")
+ continue;
+
+ entry.chop(5); // Remove .toml at the end
+ Mod mod(m_mods_dir, Metadata::get(m_index_dir, entry));
+ m_result->mods[mod.internal_id()] = mod;
+ }
+}