Merge pull request #467 from Scrumplex/fix-meta-extensions-json
Fix serialization of components with custom metadata
This commit is contained in:
commit
298871e207
@ -135,7 +135,7 @@ QJsonObject libDownloadInfoToJson(MojangLibraryDownloadInfo::Ptr libinfo)
|
|||||||
{
|
{
|
||||||
out.insert("artifact", downloadInfoToJson(libinfo->artifact));
|
out.insert("artifact", downloadInfoToJson(libinfo->artifact));
|
||||||
}
|
}
|
||||||
if(libinfo->classifiers.size())
|
if(!libinfo->classifiers.isEmpty())
|
||||||
{
|
{
|
||||||
QJsonObject classifiersOut;
|
QJsonObject classifiersOut;
|
||||||
for(auto iter = libinfo->classifiers.begin(); iter != libinfo->classifiers.end(); iter++)
|
for(auto iter = libinfo->classifiers.begin(); iter != libinfo->classifiers.end(); iter++)
|
||||||
@ -297,7 +297,7 @@ void MojangVersionFormat::writeVersionProperties(const VersionFile* in, QJsonObj
|
|||||||
{
|
{
|
||||||
out.insert("assetIndex", assetIndexToJson(in->mojangAssetIndex));
|
out.insert("assetIndex", assetIndexToJson(in->mojangAssetIndex));
|
||||||
}
|
}
|
||||||
if(in->mojangDownloads.size())
|
if(!in->mojangDownloads.isEmpty())
|
||||||
{
|
{
|
||||||
QJsonObject downloadsOut;
|
QJsonObject downloadsOut;
|
||||||
for(auto iter = in->mojangDownloads.begin(); iter != in->mojangDownloads.end(); iter++)
|
for(auto iter = in->mojangDownloads.begin(); iter != in->mojangDownloads.end(); iter++)
|
||||||
@ -306,6 +306,15 @@ void MojangVersionFormat::writeVersionProperties(const VersionFile* in, QJsonObj
|
|||||||
}
|
}
|
||||||
out.insert("downloads", downloadsOut);
|
out.insert("downloads", downloadsOut);
|
||||||
}
|
}
|
||||||
|
if(!in->compatibleJavaMajors.isEmpty())
|
||||||
|
{
|
||||||
|
QJsonArray compatibleJavaMajorsOut;
|
||||||
|
for(auto compatibleJavaMajor : in->compatibleJavaMajors)
|
||||||
|
{
|
||||||
|
compatibleJavaMajorsOut.append(compatibleJavaMajor);
|
||||||
|
}
|
||||||
|
out.insert("compatibleJavaMajors", compatibleJavaMajorsOut);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QJsonDocument MojangVersionFormat::versionFileToJson(const VersionFilePtr &patch)
|
QJsonDocument MojangVersionFormat::versionFileToJson(const VersionFilePtr &patch)
|
||||||
@ -396,7 +405,7 @@ QJsonObject MojangVersionFormat::libraryToJson(Library *library)
|
|||||||
iter++;
|
iter++;
|
||||||
}
|
}
|
||||||
libRoot.insert("natives", nativeList);
|
libRoot.insert("natives", nativeList);
|
||||||
if (library->m_extractExcludes.size())
|
if (!library->m_extractExcludes.isEmpty())
|
||||||
{
|
{
|
||||||
QJsonArray excludes;
|
QJsonArray excludes;
|
||||||
QJsonObject extract;
|
QJsonObject extract;
|
||||||
@ -408,7 +417,7 @@ QJsonObject MojangVersionFormat::libraryToJson(Library *library)
|
|||||||
libRoot.insert("extract", extract);
|
libRoot.insert("extract", extract);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (library->m_rules.size())
|
if (!library->m_rules.isEmpty())
|
||||||
{
|
{
|
||||||
QJsonArray allRules;
|
QJsonArray allRules;
|
||||||
for (auto &rule : library->m_rules)
|
for (auto &rule : library->m_rules)
|
||||||
|
@ -63,13 +63,13 @@ LibraryPtr OneSixVersionFormat::libraryFromJson(ProblemContainer & problems, con
|
|||||||
QJsonObject OneSixVersionFormat::libraryToJson(Library *library)
|
QJsonObject OneSixVersionFormat::libraryToJson(Library *library)
|
||||||
{
|
{
|
||||||
QJsonObject libRoot = MojangVersionFormat::libraryToJson(library);
|
QJsonObject libRoot = MojangVersionFormat::libraryToJson(library);
|
||||||
if (library->m_absoluteURL.size())
|
if (!library->m_absoluteURL.isEmpty())
|
||||||
libRoot.insert("MMC-absoluteUrl", library->m_absoluteURL);
|
libRoot.insert("MMC-absoluteUrl", library->m_absoluteURL);
|
||||||
if (library->m_hint.size())
|
if (!library->m_hint.isEmpty())
|
||||||
libRoot.insert("MMC-hint", library->m_hint);
|
libRoot.insert("MMC-hint", library->m_hint);
|
||||||
if (library->m_filename.size())
|
if (!library->m_filename.isEmpty())
|
||||||
libRoot.insert("MMC-filename", library->m_filename);
|
libRoot.insert("MMC-filename", library->m_filename);
|
||||||
if (library->m_displayname.size())
|
if (!library->m_displayname.isEmpty())
|
||||||
libRoot.insert("MMC-displayname", library->m_displayname);
|
libRoot.insert("MMC-displayname", library->m_displayname);
|
||||||
return libRoot;
|
return libRoot;
|
||||||
}
|
}
|
||||||
@ -225,11 +225,10 @@ VersionFilePtr OneSixVersionFormat::versionFileFromJson(const QJsonDocument &doc
|
|||||||
{
|
{
|
||||||
QJsonObject agentObj = requireObject(agentVal);
|
QJsonObject agentObj = requireObject(agentVal);
|
||||||
auto lib = libraryFromJson(*out, agentObj, filename);
|
auto lib = libraryFromJson(*out, agentObj, filename);
|
||||||
|
|
||||||
QString arg = "";
|
QString arg = "";
|
||||||
if (agentObj.contains("argument"))
|
|
||||||
{
|
|
||||||
readString(agentObj, "argument", arg);
|
readString(agentObj, "argument", arg);
|
||||||
}
|
|
||||||
AgentPtr agent(new Agent(lib, arg));
|
AgentPtr agent(new Agent(lib, arg));
|
||||||
out->agents.append(agent);
|
out->agents.append(agent);
|
||||||
}
|
}
|
||||||
@ -332,6 +331,20 @@ QJsonDocument OneSixVersionFormat::versionFileToJson(const VersionFilePtr &patch
|
|||||||
writeString(root, "appletClass", patch->appletClass);
|
writeString(root, "appletClass", patch->appletClass);
|
||||||
writeStringList(root, "+tweakers", patch->addTweakers);
|
writeStringList(root, "+tweakers", patch->addTweakers);
|
||||||
writeStringList(root, "+traits", patch->traits.values());
|
writeStringList(root, "+traits", patch->traits.values());
|
||||||
|
writeStringList(root, "+jvmArgs", patch->addnJvmArguments);
|
||||||
|
if (!patch->agents.isEmpty())
|
||||||
|
{
|
||||||
|
QJsonArray array;
|
||||||
|
for (auto value: patch->agents)
|
||||||
|
{
|
||||||
|
QJsonObject agentOut = OneSixVersionFormat::libraryToJson(value->library().get());
|
||||||
|
if (!value->argument().isEmpty())
|
||||||
|
agentOut.insert("argument", value->argument());
|
||||||
|
|
||||||
|
array.append(agentOut);
|
||||||
|
}
|
||||||
|
root.insert("+agents", array);
|
||||||
|
}
|
||||||
if (!patch->libraries.isEmpty())
|
if (!patch->libraries.isEmpty())
|
||||||
{
|
{
|
||||||
QJsonArray array;
|
QJsonArray array;
|
||||||
|
Loading…
Reference in New Issue
Block a user