aboutsummaryrefslogtreecommitdiff
path: root/launcher/modplatform/ModAPI.h
diff options
context:
space:
mode:
Diffstat (limited to 'launcher/modplatform/ModAPI.h')
-rw-r--r--launcher/modplatform/ModAPI.h37
1 files changed, 34 insertions, 3 deletions
diff --git a/launcher/modplatform/ModAPI.h b/launcher/modplatform/ModAPI.h
index ae6ac80f..8e6cd45c 100644
--- a/launcher/modplatform/ModAPI.h
+++ b/launcher/modplatform/ModAPI.h
@@ -3,6 +3,8 @@
#include <QString>
#include <QList>
+#include "Version.h"
+
namespace ModPlatform {
class ListModel;
}
@@ -15,14 +17,14 @@ class ModAPI {
virtual ~ModAPI() = default;
// https://docs.curseforge.com/?http#tocS_ModLoaderType
- enum ModLoaderType { Any = 0, Forge = 1, Cauldron = 2, LiteLoader = 3, Fabric = 4 };
+ enum ModLoaderType { Unspecified = 0, Forge = 1, Cauldron = 2, LiteLoader = 3, Fabric = 4, Quilt = 5 };
struct SearchArgs {
int offset;
QString search;
QString sorting;
ModLoaderType mod_loader;
- QString version;
+ std::list<Version> versions;
};
virtual void searchMods(CallerType* caller, SearchArgs&& args) const = 0;
@@ -30,9 +32,38 @@ class ModAPI {
struct VersionSearchArgs {
QString addonId;
- QList<QString> mcVersions;
+ std::list<Version> mcVersions;
ModLoaderType loader;
};
virtual void getVersions(CallerType* caller, VersionSearchArgs&& args) const = 0;
+
+ static auto getModLoaderString(ModLoaderType type) -> const QString {
+ switch (type) {
+ case Unspecified:
+ break;
+ case Forge:
+ return "forge";
+ case Cauldron:
+ return "cauldron";
+ case LiteLoader:
+ return "liteloader";
+ case Fabric:
+ return "fabric";
+ case Quilt:
+ return "quilt";
+ }
+ return "";
+ }
+
+ protected:
+ inline auto getGameVersionsString(std::list<Version> mcVersions) const -> QString
+ {
+ QString s;
+ for(auto& ver : mcVersions){
+ s += QString("%1,").arg(ver.toString());
+ }
+ s.remove(s.length() - 1, 1); //remove last comma
+ return s;
+ }
};