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);
|
auto file = ProfileUtils::parseJsonFile(QFileInfo(mcJson), false);
|
||||||
file->fileId = "net.minecraft";
|
file->fileId = "net.minecraft";
|
||||||
file->name = "Minecraft (FTB tracked)";
|
file->name = QObject::tr("Minecraft (tracked)");
|
||||||
if(file->version.isEmpty())
|
if(file->version.isEmpty())
|
||||||
{
|
{
|
||||||
file->version = mcVersion;
|
file->version = mcVersion;
|
||||||
@ -48,12 +48,33 @@ void FTBProfileStrategy::loadDefaultBuiltinPatches()
|
|||||||
// load up the base minecraft patch
|
// load up the base minecraft patch
|
||||||
if(QFile::exists(mcJson))
|
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->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())
|
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);
|
minecraftPatch = std::dynamic_pointer_cast<ProfilePatch>(file);
|
||||||
}
|
}
|
||||||
|
@ -87,7 +87,7 @@ void OneSixProfileStrategy::loadDefaultBuiltinPatches()
|
|||||||
|
|
||||||
// TODO: this is obviously fake.
|
// TODO: this is obviously fake.
|
||||||
QResource LWJGL(":/versions/LWJGL/2.9.1.json");
|
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);
|
auto lwjglPatch = std::dynamic_pointer_cast<ProfilePatch>(lwjgl);
|
||||||
if (!lwjglPatch)
|
if (!lwjglPatch)
|
||||||
{
|
{
|
||||||
|
@ -98,7 +98,7 @@ bool readOverrideOrders(QString path, PatchOrder &order)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
VersionFilePtr parseJsonFile(const QFileInfo &fileInfo, const bool requireOrder, bool isFTB)
|
VersionFilePtr parseJsonFile(const QFileInfo &fileInfo, const bool requireOrder)
|
||||||
{
|
{
|
||||||
QFile file(fileInfo.absoluteFilePath());
|
QFile file(fileInfo.absoluteFilePath());
|
||||||
if (!file.open(QFile::ReadOnly))
|
if (!file.open(QFile::ReadOnly))
|
||||||
@ -115,7 +115,7 @@ VersionFilePtr parseJsonFile(const QFileInfo &fileInfo, const bool requireOrder,
|
|||||||
.arg(fileInfo.fileName(), error.errorString())
|
.arg(fileInfo.fileName(), error.errorString())
|
||||||
.arg(error.offset));
|
.arg(error.offset));
|
||||||
}
|
}
|
||||||
return VersionFile::fromJson(doc, file.fileName(), requireOrder, isFTB);
|
return VersionFile::fromJson(doc, file.fileName(), requireOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
VersionFilePtr parseBinaryJsonFile(const QFileInfo &fileInfo)
|
VersionFilePtr parseBinaryJsonFile(const QFileInfo &fileInfo)
|
||||||
@ -134,7 +134,7 @@ VersionFilePtr parseBinaryJsonFile(const QFileInfo &fileInfo)
|
|||||||
throw JSONValidationError(
|
throw JSONValidationError(
|
||||||
QObject::tr("Unable to process the version file %1.").arg(fileInfo.fileName()));
|
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)
|
void removeLwjglFromPatch(VersionFilePtr patch)
|
||||||
|
@ -14,7 +14,7 @@ bool writeOverrideOrders(QString path, const PatchOrder &order);
|
|||||||
|
|
||||||
|
|
||||||
/// Parse a version file in JSON format
|
/// 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
|
/// Parse a version file in binary JSON format
|
||||||
VersionFilePtr parseBinaryJsonFile(const QFileInfo &fileInfo);
|
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,
|
VersionFilePtr VersionFile::fromJson(const QJsonDocument &doc, const QString &filename,
|
||||||
const bool requireOrder, const bool isFTB)
|
const bool requireOrder)
|
||||||
{
|
{
|
||||||
VersionFilePtr out(new VersionFile());
|
VersionFilePtr out(new VersionFile());
|
||||||
if (doc.isEmpty() || doc.isNull())
|
if (doc.isEmpty() || doc.isNull())
|
||||||
@ -84,11 +84,7 @@ VersionFilePtr VersionFile::fromJson(const QJsonDocument &doc, const QString &fi
|
|||||||
return QString();
|
return QString();
|
||||||
};
|
};
|
||||||
|
|
||||||
// FIXME: This should be ignored when applying.
|
readString("id", out->id);
|
||||||
if (!isFTB)
|
|
||||||
{
|
|
||||||
readString("id", out->id);
|
|
||||||
}
|
|
||||||
|
|
||||||
readString("mainClass", out->mainClass);
|
readString("mainClass", out->mainClass);
|
||||||
readString("appletClass", out->appletClass);
|
readString("appletClass", out->appletClass);
|
||||||
@ -143,24 +139,13 @@ VersionFilePtr VersionFile::fromJson(const QJsonDocument &doc, const QString &fi
|
|||||||
|
|
||||||
if (root.contains("libraries"))
|
if (root.contains("libraries"))
|
||||||
{
|
{
|
||||||
// FIXME: This should be done when applying.
|
out->shouldOverwriteLibs = true;
|
||||||
out->shouldOverwriteLibs = !isFTB;
|
|
||||||
for (auto libVal : ensureArray(root.value("libraries")))
|
for (auto libVal : ensureArray(root.value("libraries")))
|
||||||
{
|
{
|
||||||
auto libObj = ensureObject(libVal);
|
auto libObj = ensureObject(libVal);
|
||||||
|
|
||||||
auto lib = RawLibrary::fromJson(libObj, filename);
|
auto lib = RawLibrary::fromJson(libObj, filename);
|
||||||
// FIXME: This should be done when applying.
|
out->overwriteLibs.append(lib);
|
||||||
if (isFTB)
|
|
||||||
{
|
|
||||||
lib->m_hint = "local";
|
|
||||||
lib->insertType = RawLibrary::Prepend;
|
|
||||||
out->addLibs.prepend(lib);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
out->overwriteLibs.append(lib);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ class VersionFile : public ProfilePatch
|
|||||||
{
|
{
|
||||||
public: /* methods */
|
public: /* methods */
|
||||||
static VersionFilePtr fromJson(const QJsonDocument &doc, const QString &filename,
|
static VersionFilePtr fromJson(const QJsonDocument &doc, const QString &filename,
|
||||||
const bool requireOrder, const bool isFTB = false);
|
const bool requireOrder);
|
||||||
QJsonDocument toJson(bool saveOrder);
|
QJsonDocument toJson(bool saveOrder);
|
||||||
|
|
||||||
virtual void applyTo(MinecraftProfile *version) override;
|
virtual void applyTo(MinecraftProfile *version) override;
|
||||||
|
Loading…
Reference in New Issue
Block a user