mirror of
https://github.com/MultiMC/MultiMC5.git
synced 2024-10-04 05:50:15 +00:00
Try to import neoforged packs from FTB
Maybe this will work, maybe it will not. It's better than importing them completely wrong though.
This commit is contained in:
parent
2c9e7b75f4
commit
d22707c7fc
@ -186,6 +186,7 @@ void resolveModloader(QString mcVersion, ModLoader &loader) {
|
||||
{
|
||||
QJsonDocument doc = Json::requireDocument(data);
|
||||
QJsonObject root = Json::requireObject(doc, "version.json");
|
||||
bool isProbablyNeoforge = false;
|
||||
for (auto library: Json::ensureArray(root, "libraries", {}))
|
||||
{
|
||||
if (!library.isObject())
|
||||
@ -197,6 +198,10 @@ void resolveModloader(QString mcVersion, ModLoader &loader) {
|
||||
GradleSpecifier name = Json::requireString(libraryObject, "name");
|
||||
auto artifactPrefix = name.artifactPrefix();
|
||||
|
||||
if(artifactPrefix.startsWith("net.neoforged.fancymodloader:")) {
|
||||
isProbablyNeoforge = true;
|
||||
break;
|
||||
}
|
||||
if(artifactPrefix == "net.minecraftforge:forge") {
|
||||
QString libraryVersion = name.version();
|
||||
loader.type = ModLoaderType::Forge;
|
||||
@ -231,7 +236,12 @@ void resolveModloader(QString mcVersion, ModLoader &loader) {
|
||||
for (auto arg: gameArgs) {
|
||||
QString value = Json::ensureValueString(arg, QString());
|
||||
if(versionIsNext) {
|
||||
if(isProbablyNeoforge) {
|
||||
loader.type = ModLoaderType::NeoForge;
|
||||
}
|
||||
else {
|
||||
loader.type = ModLoaderType::Forge;
|
||||
}
|
||||
loader.version = value;
|
||||
return;
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ enum class ModLoaderType {
|
||||
Unresolved,
|
||||
None,
|
||||
Forge,
|
||||
NeoForge,
|
||||
Fabric,
|
||||
Quilt
|
||||
};
|
||||
|
@ -62,6 +62,10 @@ void PackInstallTask::copyFinished() {
|
||||
components->setComponentVersion("net.minecraftforge", modloader.version, true);
|
||||
break;
|
||||
}
|
||||
case ModLoaderType::NeoForge: {
|
||||
components->setComponentVersion("net.neoforged", modloader.version, true);
|
||||
break;
|
||||
}
|
||||
case ModLoaderType::Fabric: {
|
||||
components->setComponentVersion("net.fabricmc.fabric-loader", modloader.version, true);
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user