NOISSUE Remove special FTB logic from generic version patch code
This commit is contained in:
		| @@ -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("id", out->id); | ||||
|  | ||||
| 	readString("mainClass", out->mainClass); | ||||
| 	readString("appletClass", out->appletClass); | ||||
| @@ -143,24 +139,13 @@ 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); | ||||
| 			} | ||||
| 			out->overwriteLibs.append(lib); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
|   | ||||
| @@ -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; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user