Fix data pack filtering
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
This commit is contained in:
parent
46c348a7b4
commit
82978ee34d
5 changed files with 22 additions and 10 deletions
|
@ -122,11 +122,13 @@ auto getModLoaderAsString(ModLoaderType type) -> const QString
|
||||||
case Cauldron:
|
case Cauldron:
|
||||||
return "cauldron";
|
return "cauldron";
|
||||||
case LiteLoader:
|
case LiteLoader:
|
||||||
return "liteloader";
|
return "liteloader";
|
||||||
case Fabric:
|
case Fabric:
|
||||||
return "fabric";
|
return "fabric";
|
||||||
case Quilt:
|
case Quilt:
|
||||||
return "quilt";
|
return "quilt";
|
||||||
|
case DataPack:
|
||||||
|
return "datapack";
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,15 @@ class QIODevice;
|
||||||
|
|
||||||
namespace ModPlatform {
|
namespace ModPlatform {
|
||||||
|
|
||||||
enum ModLoaderType { NeoForge = 1 << 0, Forge = 1 << 1, Cauldron = 1 << 2, LiteLoader = 1 << 3, Fabric = 1 << 4, Quilt = 1 << 5 };
|
enum ModLoaderType {
|
||||||
|
NeoForge = 1 << 0,
|
||||||
|
Forge = 1 << 1,
|
||||||
|
Cauldron = 1 << 2,
|
||||||
|
LiteLoader = 1 << 3,
|
||||||
|
Fabric = 1 << 4,
|
||||||
|
Quilt = 1 << 5,
|
||||||
|
DataPack = 1 << 6
|
||||||
|
};
|
||||||
Q_DECLARE_FLAGS(ModLoaderTypes, ModLoaderType)
|
Q_DECLARE_FLAGS(ModLoaderTypes, ModLoaderType)
|
||||||
QList<ModLoaderType> modLoaderTypesToList(ModLoaderTypes flags);
|
QList<ModLoaderType> modLoaderTypesToList(ModLoaderTypes flags);
|
||||||
|
|
||||||
|
|
|
@ -68,6 +68,8 @@ class FlameAPI : public NetworkResourceAPI {
|
||||||
return 5;
|
return 5;
|
||||||
case ModPlatform::NeoForge:
|
case ModPlatform::NeoForge:
|
||||||
return 6;
|
return 6;
|
||||||
|
case ModPlatform::DataPack:
|
||||||
|
break; // not supported
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,8 +42,8 @@ class ModrinthAPI : public NetworkResourceAPI {
|
||||||
static auto getModLoaderStrings(const ModPlatform::ModLoaderTypes types) -> const QStringList
|
static auto getModLoaderStrings(const ModPlatform::ModLoaderTypes types) -> const QStringList
|
||||||
{
|
{
|
||||||
QStringList l;
|
QStringList l;
|
||||||
for (auto loader :
|
for (auto loader : { ModPlatform::NeoForge, ModPlatform::Forge, ModPlatform::Fabric, ModPlatform::Quilt, ModPlatform::LiteLoader,
|
||||||
{ ModPlatform::NeoForge, ModPlatform::Forge, ModPlatform::Fabric, ModPlatform::Quilt, ModPlatform::LiteLoader }) {
|
ModPlatform::DataPack }) {
|
||||||
if (types & loader) {
|
if (types & loader) {
|
||||||
l << getModLoaderAsString(loader);
|
l << getModLoaderAsString(loader);
|
||||||
}
|
}
|
||||||
|
@ -103,12 +103,13 @@ class ModrinthAPI : public NetworkResourceAPI {
|
||||||
{
|
{
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case ModPlatform::ResourceType::MOD:
|
case ModPlatform::ResourceType::MOD:
|
||||||
case ModPlatform::ResourceType::DATA_PACK:
|
|
||||||
return "mod";
|
return "mod";
|
||||||
case ModPlatform::ResourceType::RESOURCE_PACK:
|
case ModPlatform::ResourceType::RESOURCE_PACK:
|
||||||
return "resourcepack";
|
return "resourcepack";
|
||||||
case ModPlatform::ResourceType::SHADER_PACK:
|
case ModPlatform::ResourceType::SHADER_PACK:
|
||||||
return "shader";
|
return "shader";
|
||||||
|
case ModPlatform::ResourceType::DATA_PACK:
|
||||||
|
return "datapack";
|
||||||
case ModPlatform::ResourceType::MODPACK:
|
case ModPlatform::ResourceType::MODPACK:
|
||||||
return "modpack";
|
return "modpack";
|
||||||
default:
|
default:
|
||||||
|
@ -127,8 +128,6 @@ class ModrinthAPI : public NetworkResourceAPI {
|
||||||
facets_list.append(QString("[%1]").arg(getModLoaderFilters(args.loaders.value())));
|
facets_list.append(QString("[%1]").arg(getModLoaderFilters(args.loaders.value())));
|
||||||
if (args.versions.has_value() && !args.versions.value().empty())
|
if (args.versions.has_value() && !args.versions.value().empty())
|
||||||
facets_list.append(QString("[%1]").arg(getGameVersionsArray(args.versions.value())));
|
facets_list.append(QString("[%1]").arg(getGameVersionsArray(args.versions.value())));
|
||||||
if (args.type == ModPlatform::ResourceType::DATA_PACK)
|
|
||||||
facets_list.append("[\"categories:datapack\"]");
|
|
||||||
if (args.side.has_value()) {
|
if (args.side.has_value()) {
|
||||||
auto side = getSideFilters(args.side.value());
|
auto side = getSideFilters(args.side.value());
|
||||||
if (!side.isEmpty())
|
if (!side.isEmpty())
|
||||||
|
@ -200,7 +199,8 @@ class ModrinthAPI : public NetworkResourceAPI {
|
||||||
|
|
||||||
static inline auto validateModLoaders(ModPlatform::ModLoaderTypes loaders) -> bool
|
static inline auto validateModLoaders(ModPlatform::ModLoaderTypes loaders) -> bool
|
||||||
{
|
{
|
||||||
return loaders & (ModPlatform::NeoForge | ModPlatform::Forge | ModPlatform::Fabric | ModPlatform::Quilt | ModPlatform::LiteLoader);
|
return loaders & (ModPlatform::NeoForge | ModPlatform::Forge | ModPlatform::Fabric | ModPlatform::Quilt | ModPlatform::LiteLoader |
|
||||||
|
ModPlatform::DataPack);
|
||||||
}
|
}
|
||||||
|
|
||||||
[[nodiscard]] std::optional<QString> getDependencyURL(DependencySearchArgs const& args) const override
|
[[nodiscard]] std::optional<QString> getDependencyURL(DependencySearchArgs const& args) const override
|
||||||
|
|
|
@ -18,13 +18,13 @@ DataPackResourceModel::DataPackResourceModel(BaseInstance const& base_inst, Reso
|
||||||
ResourceAPI::SearchArgs DataPackResourceModel::createSearchArguments()
|
ResourceAPI::SearchArgs DataPackResourceModel::createSearchArguments()
|
||||||
{
|
{
|
||||||
auto sort = getCurrentSortingMethodByIndex();
|
auto sort = getCurrentSortingMethodByIndex();
|
||||||
return { ModPlatform::ResourceType::DATA_PACK, m_next_search_offset, m_search_term, sort };
|
return { ModPlatform::ResourceType::DATA_PACK, m_next_search_offset, m_search_term, sort, ModPlatform::ModLoaderType::DataPack };
|
||||||
}
|
}
|
||||||
|
|
||||||
ResourceAPI::VersionSearchArgs DataPackResourceModel::createVersionsArguments(QModelIndex& entry)
|
ResourceAPI::VersionSearchArgs DataPackResourceModel::createVersionsArguments(QModelIndex& entry)
|
||||||
{
|
{
|
||||||
auto& pack = m_packs[entry.row()];
|
auto& pack = m_packs[entry.row()];
|
||||||
return { *pack };
|
return { *pack, {}, ModPlatform::ModLoaderType::DataPack };
|
||||||
}
|
}
|
||||||
|
|
||||||
ResourceAPI::ProjectInfoArgs DataPackResourceModel::createInfoArguments(QModelIndex& entry)
|
ResourceAPI::ProjectInfoArgs DataPackResourceModel::createInfoArguments(QModelIndex& entry)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue