propagate side as enum instead of Qstring (#3544)
This commit is contained in:
@@ -69,18 +69,20 @@ class ModrinthAPI : public NetworkResourceAPI {
|
||||
return l.join(',');
|
||||
}
|
||||
|
||||
static auto getSideFilters(QString side) -> const QString
|
||||
static QString getSideFilters(ModPlatform::Side side)
|
||||
{
|
||||
if (side.isEmpty()) {
|
||||
return {};
|
||||
switch (side) {
|
||||
case ModPlatform::Side::ClientSide:
|
||||
return QString("\"client_side:required\",\"client_side:optional\"],[\"server_side:optional\",\"server_side:unsupported\"");
|
||||
case ModPlatform::Side::ServerSide:
|
||||
return QString("\"server_side:required\",\"server_side:optional\"],[\"client_side:optional\",\"client_side:unsupported\"");
|
||||
case ModPlatform::Side::UniversalSide:
|
||||
return QString("\"client_side:required\"],[\"server_side:required\"");
|
||||
case ModPlatform::Side::NoSide:
|
||||
// fallthrough
|
||||
default:
|
||||
return {};
|
||||
}
|
||||
if (side == "both")
|
||||
return QString("\"client_side:required\"],[\"server_side:required\"");
|
||||
if (side == "client")
|
||||
return QString("\"client_side:required\",\"client_side:optional\"],[\"server_side:optional\",\"server_side:unsupported\"");
|
||||
if (side == "server")
|
||||
return QString("\"server_side:required\",\"server_side:optional\"],[\"client_side:optional\",\"client_side:unsupported\"");
|
||||
return {};
|
||||
}
|
||||
|
||||
[[nodiscard]] static inline QString mapMCVersionFromModrinth(QString v)
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
#include "minecraft/PackProfile.h"
|
||||
#include "minecraft/mod/MetadataHandler.h"
|
||||
#include "minecraft/mod/ModFolderModel.h"
|
||||
#include "modplatform/ModIndex.h"
|
||||
#include "modplatform/helpers/HashUtils.h"
|
||||
#include "tasks/Task.h"
|
||||
|
||||
@@ -289,7 +290,7 @@ QByteArray ModrinthPackExportTask::generateIndex()
|
||||
|
||||
// a server side mod does not imply that the mod does not work on the client
|
||||
// however, if a mrpack mod is marked as server-only it will not install on the client
|
||||
if (iterator->side == Metadata::ModSide::ClientSide)
|
||||
if (iterator->side == ModPlatform::Side::ClientSide)
|
||||
env["server"] = "unsupported";
|
||||
|
||||
fileOut["env"] = env;
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
#include "BaseInstance.h"
|
||||
#include "MMCZip.h"
|
||||
#include "minecraft/MinecraftInstance.h"
|
||||
#include "modplatform/ModIndex.h"
|
||||
#include "modplatform/modrinth/ModrinthAPI.h"
|
||||
#include "tasks/Task.h"
|
||||
|
||||
@@ -45,7 +46,7 @@ class ModrinthPackExportTask : public Task {
|
||||
struct ResolvedFile {
|
||||
QString sha1, sha512, url;
|
||||
qint64 size;
|
||||
Metadata::ModSide side;
|
||||
ModPlatform::Side side;
|
||||
};
|
||||
|
||||
static const QStringList PREFIXES;
|
||||
|
||||
@@ -63,11 +63,11 @@ void Modrinth::loadIndexedPack(ModPlatform::IndexedPack& pack, QJsonObject& obj)
|
||||
auto server = shouldDownloadOnSide(Json::ensureString(obj, "server_side"));
|
||||
|
||||
if (server && client) {
|
||||
pack.side = "both";
|
||||
pack.side = ModPlatform::Side::UniversalSide;
|
||||
} else if (server) {
|
||||
pack.side = "server";
|
||||
pack.side = ModPlatform::Side::ServerSide;
|
||||
} else if (client) {
|
||||
pack.side = "client";
|
||||
pack.side = ModPlatform::Side::ClientSide;
|
||||
}
|
||||
|
||||
// Modrinth can have more data than what's provided by the basic search :)
|
||||
|
||||
Reference in New Issue
Block a user