mirror of
https://github.com/UltimMC/Launcher.git
synced 2025-10-04 17:09:25 +00:00
GH-5146 mrpack exporter: add option to treat disabled files as optional
This commit is contained in:
@@ -29,15 +29,24 @@ void InstanceExportTask::executeTask()
|
||||
|
||||
QDir modsDir(m_instance->gameRoot() + "/mods");
|
||||
modsDir.setFilter(QDir::Files);
|
||||
modsDir.setNameFilters(QStringList() << "*.jar");
|
||||
QStringList modsFilter = { "*.jar" };
|
||||
if (m_settings.treatDisabledAsOptional) {
|
||||
modsFilter << "*.jar.disabled";
|
||||
}
|
||||
modsDir.setNameFilters(modsFilter);
|
||||
|
||||
QStringList zipFilter = { "*.zip" };
|
||||
if (m_settings.treatDisabledAsOptional) {
|
||||
zipFilter << "*.zip.disabled";
|
||||
}
|
||||
|
||||
QDir resourcePacksDir(m_instance->gameRoot() + "/resourcepacks");
|
||||
resourcePacksDir.setFilter(QDir::Files);
|
||||
resourcePacksDir.setNameFilters(QStringList() << "*.zip");
|
||||
resourcePacksDir.setNameFilters(zipFilter);
|
||||
|
||||
QDir shaderPacksDir(m_instance->gameRoot() + "/shaderpacks");
|
||||
shaderPacksDir.setFilter(QDir::Files);
|
||||
shaderPacksDir.setNameFilters(QStringList() << "*.zip");
|
||||
shaderPacksDir.setNameFilters(zipFilter);
|
||||
|
||||
QStringList filesToResolve;
|
||||
|
||||
@@ -132,7 +141,13 @@ void InstanceExportTask::lookupSucceeded()
|
||||
|
||||
QDir gameDir(m_instance->gameRoot());
|
||||
|
||||
fileData.path = gameDir.relativeFilePath(file.fileInfo.absoluteFilePath());
|
||||
QString path = file.fileInfo.absoluteFilePath();
|
||||
if (path.endsWith(".disabled")) {
|
||||
fileData.optional = true;
|
||||
path = path.left(path.length() - QString(".disabled").length());
|
||||
}
|
||||
|
||||
fileData.path = gameDir.relativeFilePath(path);
|
||||
fileData.download = url;
|
||||
fileData.sha512 = sha512Hash;
|
||||
fileData.sha1 = sha1Hash;
|
||||
@@ -175,6 +190,13 @@ void InstanceExportTask::lookupSucceeded()
|
||||
|
||||
fileObj.insert("fileSize", QJsonValue(file.fileSize));
|
||||
|
||||
if (file.optional) {
|
||||
QJsonObject env;
|
||||
env.insert("client", "optional");
|
||||
env.insert("server", "optional");
|
||||
fileObj.insert("env", env);
|
||||
}
|
||||
|
||||
files.append(fileObj);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user