fix: CF import and Modrinth export

Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
This commit is contained in:
Trial97
2025-10-04 22:37:56 +03:00
parent b119cc04df
commit 8acc52b1ab
2 changed files with 11 additions and 3 deletions

View File

@@ -113,18 +113,26 @@ QString InstanceImportTask::getRootFromZip(QStringList files)
if (!isRunning()) { if (!isRunning()) {
return {}; return {};
} }
auto cleanPath = [](QString path) {
if (path == ".")
return QString();
QString result = path;
if (result.startsWith("./"))
result = result.mid(2);
return result;
};
for (auto&& fileName : files) { for (auto&& fileName : files) {
setDetails(fileName); setDetails(fileName);
QFileInfo fileInfo(fileName); QFileInfo fileInfo(fileName);
if (fileInfo.fileName() == "instance.cfg") { if (fileInfo.fileName() == "instance.cfg") {
qDebug() << "MultiMC:" << true; qDebug() << "MultiMC:" << true;
m_modpackType = ModpackType::MultiMC; m_modpackType = ModpackType::MultiMC;
return fileInfo.path(); return cleanPath(fileInfo.path());
} }
if (fileInfo.fileName() == "manifest.json") { if (fileInfo.fileName() == "manifest.json") {
qDebug() << "Flame:" << true; qDebug() << "Flame:" << true;
m_modpackType = ModpackType::Flame; m_modpackType = ModpackType::Flame;
return fileInfo.path(); return cleanPath(fileInfo.path());
} }
QCoreApplication::processEvents(); QCoreApplication::processEvents();
} }

View File

@@ -56,7 +56,7 @@ bool ArchiveWriter::open()
} else if (lowerName.endsWith(".tar.xz") || lowerName.endsWith(".txz")) { } else if (lowerName.endsWith(".tar.xz") || lowerName.endsWith(".txz")) {
archive_write_set_format_pax_restricted(m_archive); archive_write_set_format_pax_restricted(m_archive);
archive_write_add_filter_xz(m_archive); archive_write_add_filter_xz(m_archive);
} else if (lowerName.endsWith(".zip") || lowerName.endsWith(".jar")) { } else if (lowerName.endsWith(".zip") || lowerName.endsWith(".jar") || lowerName.endsWith(".mrpack")) {
archive_write_set_format_zip(m_archive); archive_write_set_format_zip(m_archive);
} else if (lowerName.endsWith(".tar")) { } else if (lowerName.endsWith(".tar")) {
archive_write_set_format_pax_restricted(m_archive); archive_write_set_format_pax_restricted(m_archive);