aboutsummaryrefslogtreecommitdiff
path: root/launcher/minecraft/mod/tasks/LocalModParseTask.h
diff options
context:
space:
mode:
authorSefa Eyeoglu <contact@scrumplex.net>2023-01-24 14:37:40 +0100
committerSefa Eyeoglu <contact@scrumplex.net>2023-01-24 14:40:17 +0100
commit6e841a3b7e5f9270b730a10d991433f37678818a (patch)
tree0b4f0a6c44b0464bb3eb1d44d94e90b1805fb262 /launcher/minecraft/mod/tasks/LocalModParseTask.h
parent849b92665e0762a38a7e17403015e2b037318aec (diff)
parent16477a8f6c1fc646208b41b76598ce8e7a60369e (diff)
downloadPrismLauncher-6e841a3b7e5f9270b730a10d991433f37678818a.tar.gz
PrismLauncher-6e841a3b7e5f9270b730a10d991433f37678818a.tar.bz2
PrismLauncher-6e841a3b7e5f9270b730a10d991433f37678818a.zip
Merge branch 'develop' into remove-updater
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
Diffstat (limited to 'launcher/minecraft/mod/tasks/LocalModParseTask.h')
-rw-r--r--launcher/minecraft/mod/tasks/LocalModParseTask.h34
1 files changed, 25 insertions, 9 deletions
diff --git a/launcher/minecraft/mod/tasks/LocalModParseTask.h b/launcher/minecraft/mod/tasks/LocalModParseTask.h
index 413eb2d1..38dae135 100644
--- a/launcher/minecraft/mod/tasks/LocalModParseTask.h
+++ b/launcher/minecraft/mod/tasks/LocalModParseTask.h
@@ -8,32 +8,48 @@
#include "tasks/Task.h"
-class LocalModParseTask : public Task
-{
+namespace ModUtils {
+
+ModDetails ReadFabricModInfo(QByteArray contents);
+ModDetails ReadQuiltModInfo(QByteArray contents);
+ModDetails ReadForgeInfo(QByteArray contents);
+ModDetails ReadLiteModInfo(QByteArray contents);
+
+enum class ProcessingLevel { Full, BasicInfoOnly };
+
+bool process(Mod& mod, ProcessingLevel level = ProcessingLevel::Full);
+
+bool processZIP(Mod& mod, ProcessingLevel level = ProcessingLevel::Full);
+bool processFolder(Mod& mod, ProcessingLevel level = ProcessingLevel::Full);
+bool processLitemod(Mod& mod, ProcessingLevel level = ProcessingLevel::Full);
+
+/** Checks whether a file is valid as a mod or not. */
+bool validate(QFileInfo file);
+} // namespace ModUtils
+
+class LocalModParseTask : public Task {
Q_OBJECT
-public:
+ public:
struct Result {
ModDetails details;
};
using ResultPtr = std::shared_ptr<Result>;
- ResultPtr result() const {
- return m_result;
- }
+ ResultPtr result() const { return m_result; }
[[nodiscard]] bool canAbort() const override { return true; }
bool abort() override;
- LocalModParseTask(int token, ResourceType type, const QFileInfo & modFile);
+ LocalModParseTask(int token, ResourceType type, const QFileInfo& modFile);
void executeTask() override;
[[nodiscard]] int token() const { return m_token; }
-private:
+ private:
void processAsZip();
void processAsFolder();
void processAsLitemod();
-private:
+ private:
int m_token;
ResourceType m_type;
QFileInfo m_modFile;