#pragma once #include #include #include #include #include namespace ModPlatform { enum class Provider{ MODRINTH, FLAME }; class ProviderCapabilities { public: static QString hashType(Provider p) { switch(p){ case Provider::MODRINTH: return "sha512"; case Provider::FLAME: return "murmur2"; } return ""; } static const char* providerName(Provider p) { switch(p){ case Provider::MODRINTH: return "modrinth"; case Provider::FLAME: return "curseforge"; } return ""; } }; struct ModpackAuthor { QString name; QString url; }; struct IndexedVersion { QVariant addonId; QVariant fileId; QString version; QVector mcVersion; QString downloadUrl; QString date; QString fileName; QVector loaders = {}; }; struct IndexedPack { QVariant addonId; Provider provider; QString name; QString description; QList authors; QString logoName; QString logoUrl; QString websiteUrl; bool versionsLoaded = false; QVector versions; }; } // namespace ModPlatform Q_DECLARE_METATYPE(ModPlatform::IndexedPack) Q_DECLARE_METATYPE(ModPlatform::Provider)