NOISSUE Remove special FTB logic from generic version patch code
This commit is contained in:
parent
865b200571
commit
c7b39fe116
@ -27,7 +27,7 @@ void FTBProfileStrategy::loadDefaultBuiltinPatches()
|
||||
{
|
||||
auto file = ProfileUtils::parseJsonFile(QFileInfo(mcJson), false);
|
||||
file->fileId = "net.minecraft";
|
||||
file->name = "Minecraft (FTB tracked)";
|
||||
file->name = QObject::tr("Minecraft (tracked)");
|
||||
if(file->version.isEmpty())
|
||||
{
|
||||
file->version = mcVersion;
|
||||
@ -48,12 +48,33 @@ void FTBProfileStrategy::loadDefaultBuiltinPatches()
|
||||
// load up the base minecraft patch
|
||||
if(QFile::exists(mcJson))
|
||||
{
|
||||
auto file = ProfileUtils::parseJsonFile(QFileInfo(mcJson), false, true);
|
||||
auto file = ProfileUtils::parseJsonFile(QFileInfo(mcJson), false);
|
||||
|
||||
// adapt the loaded file - the FTB patch file format is different than ours.
|
||||
file->addLibs = file->overwriteLibs;
|
||||
file->overwriteLibs.clear();
|
||||
file->shouldOverwriteLibs = false;
|
||||
file->id.clear();
|
||||
for(auto addLib: file->addLibs)
|
||||
{
|
||||
addLib->m_hint = "local";
|
||||
addLib->insertType = RawLibrary::Prepend;
|
||||
}
|
||||
file->fileId = "org.multimc.ftb.pack";
|
||||
file->name = QString("%1 (FTB tracked)").arg(m_instance->name());
|
||||
file->name = QObject::tr("%1 (FTB pack)").arg(m_instance->name());
|
||||
if(file->version.isEmpty())
|
||||
{
|
||||
file->version = mcVersion;
|
||||
file->version = QObject::tr("Unknown");
|
||||
QFile versionFile (PathCombine(m_instance->instanceRoot(), "version"));
|
||||
if(versionFile.exists())
|
||||
{
|
||||
if(versionFile.open(QIODevice::ReadOnly))
|
||||
{
|
||||
// FIXME: just guessing the encoding/charset here.
|
||||
auto version = QString::fromUtf8(versionFile.readAll());
|
||||
file->version = version;
|
||||
}
|
||||
}
|
||||
}
|
||||
minecraftPatch = std::dynamic_pointer_cast<ProfilePatch>(file);
|
||||
}
|
||||
|
@ -87,7 +87,7 @@ void OneSixProfileStrategy::loadDefaultBuiltinPatches()
|
||||
|
||||
// TODO: this is obviously fake.
|
||||
QResource LWJGL(":/versions/LWJGL/2.9.1.json");
|
||||
auto lwjgl = ProfileUtils::parseJsonFile(LWJGL.absoluteFilePath(), false, false);
|
||||
auto lwjgl = ProfileUtils::parseJsonFile(LWJGL.absoluteFilePath(), false);
|
||||
auto lwjglPatch = std::dynamic_pointer_cast<ProfilePatch>(lwjgl);
|
||||
if (!lwjglPatch)
|
||||
{
|
||||
|
@ -98,7 +98,7 @@ bool readOverrideOrders(QString path, PatchOrder &order)
|
||||
return true;
|
||||
}
|
||||
|
||||
VersionFilePtr parseJsonFile(const QFileInfo &fileInfo, const bool requireOrder, bool isFTB)
|
||||
VersionFilePtr parseJsonFile(const QFileInfo &fileInfo, const bool requireOrder)
|
||||
{
|
||||
QFile file(fileInfo.absoluteFilePath());
|
||||
if (!file.open(QFile::ReadOnly))
|
||||
@ -115,7 +115,7 @@ VersionFilePtr parseJsonFile(const QFileInfo &fileInfo, const bool requireOrder,
|
||||
.arg(fileInfo.fileName(), error.errorString())
|
||||
.arg(error.offset));
|
||||
}
|
||||
return VersionFile::fromJson(doc, file.fileName(), requireOrder, isFTB);
|
||||
return VersionFile::fromJson(doc, file.fileName(), requireOrder);
|
||||
}
|
||||
|
||||
VersionFilePtr parseBinaryJsonFile(const QFileInfo &fileInfo)
|
||||
@ -134,7 +134,7 @@ VersionFilePtr parseBinaryJsonFile(const QFileInfo &fileInfo)
|
||||
throw JSONValidationError(
|
||||
QObject::tr("Unable to process the version file %1.").arg(fileInfo.fileName()));
|
||||
}
|
||||
return VersionFile::fromJson(doc, file.fileName(), false, false);
|
||||
return VersionFile::fromJson(doc, file.fileName(), false);
|
||||
}
|
||||
|
||||
void removeLwjglFromPatch(VersionFilePtr patch)
|
||||
|
@ -14,7 +14,7 @@ bool writeOverrideOrders(QString path, const PatchOrder &order);
|
||||
|
||||
|
||||
/// Parse a version file in JSON format
|
||||
VersionFilePtr parseJsonFile(const QFileInfo &fileInfo, const bool requireOrder, bool isFTB = false);
|
||||
VersionFilePtr parseJsonFile(const QFileInfo &fileInfo, const bool requireOrder);
|
||||
|
||||
/// Parse a version file in binary JSON format
|
||||
VersionFilePtr parseBinaryJsonFile(const QFileInfo &fileInfo);
|
||||
|
@ -34,7 +34,7 @@ int findLibraryByName(QList<OneSixLibraryPtr> haystack, const GradleSpecifier &n
|
||||
}
|
||||
|
||||
VersionFilePtr VersionFile::fromJson(const QJsonDocument &doc, const QString &filename,
|
||||
const bool requireOrder, const bool isFTB)
|
||||
const bool requireOrder)
|
||||
{
|
||||
VersionFilePtr out(new VersionFile());
|
||||
if (doc.isEmpty() || doc.isNull())
|
||||
@ -84,11 +84,7 @@ VersionFilePtr VersionFile::fromJson(const QJsonDocument &doc, const QString &fi
|
||||
return QString();
|
||||
};
|
||||
|
||||
// FIXME: This should be ignored when applying.
|
||||
if (!isFTB)
|
||||
{
|
||||
readString("id", out->id);
|
||||
}
|
||||
|
||||
readString("mainClass", out->mainClass);
|
||||
readString("appletClass", out->appletClass);
|
||||
@ -143,26 +139,15 @@ VersionFilePtr VersionFile::fromJson(const QJsonDocument &doc, const QString &fi
|
||||
|
||||
if (root.contains("libraries"))
|
||||
{
|
||||
// FIXME: This should be done when applying.
|
||||
out->shouldOverwriteLibs = !isFTB;
|
||||
out->shouldOverwriteLibs = true;
|
||||
for (auto libVal : ensureArray(root.value("libraries")))
|
||||
{
|
||||
auto libObj = ensureObject(libVal);
|
||||
|
||||
auto lib = RawLibrary::fromJson(libObj, filename);
|
||||
// FIXME: This should be done when applying.
|
||||
if (isFTB)
|
||||
{
|
||||
lib->m_hint = "local";
|
||||
lib->insertType = RawLibrary::Prepend;
|
||||
out->addLibs.prepend(lib);
|
||||
}
|
||||
else
|
||||
{
|
||||
out->overwriteLibs.append(lib);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (root.contains("+jarMods"))
|
||||
{
|
||||
|
@ -19,7 +19,7 @@ class VersionFile : public ProfilePatch
|
||||
{
|
||||
public: /* methods */
|
||||
static VersionFilePtr fromJson(const QJsonDocument &doc, const QString &filename,
|
||||
const bool requireOrder, const bool isFTB = false);
|
||||
const bool requireOrder);
|
||||
QJsonDocument toJson(bool saveOrder);
|
||||
|
||||
virtual void applyTo(MinecraftProfile *version) override;
|
||||
|
Loading…
Reference in New Issue
Block a user