Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into mods_txt

This commit is contained in:
Trial97 2023-06-07 20:18:56 +03:00
commit bbd9e4de9b
No known key found for this signature in database
GPG Key ID: 55EF5DA53DB36318
13 changed files with 33 additions and 25 deletions

View File

@ -149,7 +149,7 @@ void InstanceCopyTask::copyFinished()
QByteArray allowed_symlinks; QByteArray allowed_symlinks;
if (allowed_symlinks_file.exists()) { if (allowed_symlinks_file.exists()) {
allowed_symlinks.append(FS::read(allowed_symlinks_file.path())); allowed_symlinks.append(FS::read(allowed_symlinks_file.filePath()));
if (allowed_symlinks.right(1) != "\n") if (allowed_symlinks.right(1) != "\n")
allowed_symlinks.append("\n"); // we want to be on a new line allowed_symlinks.append("\n"); // we want to be on a new line
} }
@ -157,9 +157,9 @@ void InstanceCopyTask::copyFinished()
allowed_symlinks.append("\n"); allowed_symlinks.append("\n");
if (allowed_symlinks_file.isSymLink()) if (allowed_symlinks_file.isSymLink())
FS::deletePath(allowed_symlinks_file FS::deletePath(allowed_symlinks_file
.path()); // we dont want to modify the original. also make sure the resulting file is not itself a link. .filePath()); // we dont want to modify the original. also make sure the resulting file is not itself a link.
FS::write(allowed_symlinks_file.path(), allowed_symlinks); FS::write(allowed_symlinks_file.filePath(), allowed_symlinks);
} }
emitSucceeded(); emitSucceeded();

View File

@ -56,10 +56,10 @@ static Version::Ptr parseCommonVersion(const QString &uid, const QJsonObject &ob
version->setType(ensureString(obj, "type", QString())); version->setType(ensureString(obj, "type", QString()));
version->setRecommended(ensureBoolean(obj, QString("recommended"), false)); version->setRecommended(ensureBoolean(obj, QString("recommended"), false));
version->setVolatile(ensureBoolean(obj, QString("volatile"), false)); version->setVolatile(ensureBoolean(obj, QString("volatile"), false));
RequireSet requires, conflicts; RequireSet reqs, conflicts;
parseRequires(obj, &requires, "requires"); parseRequires(obj, &reqs, "requires");
parseRequires(obj, &conflicts, "conflicts"); parseRequires(obj, &conflicts, "conflicts");
version->setRequires(requires, conflicts); version->setRequires(reqs, conflicts);
return version; return version;
} }
@ -176,7 +176,6 @@ void parseRequires(const QJsonObject& obj, RequireSet* ptr, const char * keyName
{ {
if(obj.contains(keyName)) if(obj.contains(keyName))
{ {
QSet<QString> requires;
auto reqArray = requireArray(obj, keyName); auto reqArray = requireArray(obj, keyName);
auto iter = reqArray.begin(); auto iter = reqArray.begin();
while(iter != reqArray.end()) while(iter != reqArray.end())

View File

@ -116,9 +116,9 @@ void Meta::Version::setTime(const qint64 time)
emit timeChanged(); emit timeChanged();
} }
void Meta::Version::setRequires(const Meta::RequireSet &requires, const Meta::RequireSet &conflicts) void Meta::Version::setRequires(const Meta::RequireSet &reqs, const Meta::RequireSet &conflicts)
{ {
m_requires = requires; m_requires = reqs;
m_conflicts = conflicts; m_conflicts = conflicts;
emit requiresChanged(); emit requiresChanged();
} }

View File

@ -63,7 +63,7 @@ public:
{ {
return m_time; return m_time;
} }
const Meta::RequireSet &requires() const const Meta::RequireSet &requiredSet() const
{ {
return m_requires; return m_requires;
} }
@ -91,7 +91,7 @@ public:
public: // for usage by format parsers only public: // for usage by format parsers only
void setType(const QString &type); void setType(const QString &type);
void setTime(const qint64 time); void setTime(const qint64 time);
void setRequires(const Meta::RequireSet &requires, const Meta::RequireSet &conflicts); void setRequires(const Meta::RequireSet &reqs, const Meta::RequireSet &conflicts);
void setVolatile(bool volatile_); void setVolatile(bool volatile_);
void setRecommended(bool recommended); void setRecommended(bool recommended);
void setProvidesRecommendations(); void setProvidesRecommendations();

View File

@ -77,7 +77,7 @@ QVariant VersionList::data(const QModelIndex &index, int role) const
case ParentVersionRole: case ParentVersionRole:
{ {
// FIXME: HACK: this should be generic and be replaced by something else. Anything that is a hard 'equals' dep is a 'parent uid'. // FIXME: HACK: this should be generic and be replaced by something else. Anything that is a hard 'equals' dep is a 'parent uid'.
auto & reqs = version->requires(); auto & reqs = version->requiredSet();
auto iter = std::find_if(reqs.begin(), reqs.end(), [](const Require & req) auto iter = std::find_if(reqs.begin(), reqs.end(), [](const Require & req)
{ {
return req.uid == "net.minecraft"; return req.uid == "net.minecraft";
@ -92,7 +92,7 @@ QVariant VersionList::data(const QModelIndex &index, int role) const
case UidRole: return version->uid(); case UidRole: return version->uid();
case TimeRole: return version->time(); case TimeRole: return version->time();
case RequiresRole: return QVariant::fromValue(version->requires()); case RequiresRole: return QVariant::fromValue(version->requiredSet());
case SortRole: return version->rawTime(); case SortRole: return version->rawTime();
case VersionPtrRole: return QVariant::fromValue(version); case VersionPtrRole: return QVariant::fromValue(version);
case RecommendedRole: return version->isRecommended(); case RecommendedRole: return version->isRecommended();

View File

@ -451,9 +451,9 @@ void Component::updateCachedData()
m_cachedVolatile = file->m_volatile; m_cachedVolatile = file->m_volatile;
changed = true; changed = true;
} }
if(!deepCompare(m_cachedRequires, file->requires)) if(!deepCompare(m_cachedRequires, file->m_requires))
{ {
m_cachedRequires = file->requires; m_cachedRequires = file->m_requires;
changed = true; changed = true;
} }
if(!deepCompare(m_cachedConflicts, file->conflicts)) if(!deepCompare(m_cachedConflicts, file->conflicts))

View File

@ -276,7 +276,7 @@ VersionFilePtr OneSixVersionFormat::versionFileFromJson(const QJsonDocument &doc
if (root.contains("requires")) if (root.contains("requires"))
{ {
Meta::parseRequires(root, &out->requires); Meta::parseRequires(root, &out->m_requires);
} }
QString dependsOnMinecraftVersion = root.value("mcVersion").toString(); QString dependsOnMinecraftVersion = root.value("mcVersion").toString();
if(!dependsOnMinecraftVersion.isEmpty()) if(!dependsOnMinecraftVersion.isEmpty())
@ -284,9 +284,9 @@ VersionFilePtr OneSixVersionFormat::versionFileFromJson(const QJsonDocument &doc
Meta::Require mcReq; Meta::Require mcReq;
mcReq.uid = "net.minecraft"; mcReq.uid = "net.minecraft";
mcReq.equalsVersion = dependsOnMinecraftVersion; mcReq.equalsVersion = dependsOnMinecraftVersion;
if (out->requires.count(mcReq) == 0) if (out->m_requires.count(mcReq) == 0)
{ {
out->requires.insert(mcReq); out->m_requires.insert(mcReq);
} }
} }
if (root.contains("conflicts")) if (root.contains("conflicts"))
@ -392,9 +392,9 @@ QJsonDocument OneSixVersionFormat::versionFileToJson(const VersionFilePtr &patch
} }
root.insert("mods", array); root.insert("mods", array);
} }
if(!patch->requires.empty()) if(!patch->m_requires.empty())
{ {
Meta::serializeRequires(root, &patch->requires, "requires"); Meta::serializeRequires(root, &patch->m_requires, "requires");
} }
if(!patch->conflicts.empty()) if(!patch->conflicts.empty())
{ {

View File

@ -138,7 +138,7 @@ public: /* data */
* Prism Launcher: set of packages this depends on * Prism Launcher: set of packages this depends on
* NOTE: this is shared with the meta format!!! * NOTE: this is shared with the meta format!!!
*/ */
Meta::RequireSet requires; Meta::RequireSet m_requires;
/** /**
* Prism Launcher: set of packages this conflicts with * Prism Launcher: set of packages this conflicts with

View File

@ -33,7 +33,9 @@ static const QMap<int, std::pair<Version, Version>> s_pack_format_versions = {
{ 4, { Version("1.13"), Version("1.14.4") } }, { 5, { Version("1.15"), Version("1.16.1") } }, { 4, { Version("1.13"), Version("1.14.4") } }, { 5, { Version("1.15"), Version("1.16.1") } },
{ 6, { Version("1.16.2"), Version("1.16.5") } }, { 7, { Version("1.17"), Version("1.17.1") } }, { 6, { Version("1.16.2"), Version("1.16.5") } }, { 7, { Version("1.17"), Version("1.17.1") } },
{ 8, { Version("1.18"), Version("1.18.1") } }, { 9, { Version("1.18.2"), Version("1.18.2") } }, { 8, { Version("1.18"), Version("1.18.1") } }, { 9, { Version("1.18.2"), Version("1.18.2") } },
{ 10, { Version("1.19"), Version("1.19.3") } }, { 10, { Version("1.19"), Version("1.19.3") } }, { 11, { Version("23w03a"), Version("23w05a") } },
{ 12, { Version("1.19.4"), Version("1.19.4") } }, { 13, { Version("23w12a"), Version("23w14a") } },
{ 14, { Version("23w16a"), Version("23w17a") } }, { 15, { Version("1.20"), Version("1.20") } },
}; };
void DataPack::setPackFormat(int new_format_id) void DataPack::setPackFormat(int new_format_id)

View File

@ -18,7 +18,8 @@ static const QMap<int, std::pair<Version, Version>> s_pack_format_versions = {
{ 5, { Version("1.15"), Version("1.16.1") } }, { 6, { Version("1.16.2"), Version("1.16.5") } }, { 5, { Version("1.15"), Version("1.16.1") } }, { 6, { Version("1.16.2"), Version("1.16.5") } },
{ 7, { Version("1.17"), Version("1.17.1") } }, { 8, { Version("1.18"), Version("1.18.2") } }, { 7, { Version("1.17"), Version("1.17.1") } }, { 8, { Version("1.18"), Version("1.18.2") } },
{ 9, { Version("1.19"), Version("1.19.2") } }, { 11, { Version("22w42a"), Version("22w44a") } }, { 9, { Version("1.19"), Version("1.19.2") } }, { 11, { Version("22w42a"), Version("22w44a") } },
{ 12, { Version("1.19.3"), Version("1.19.3") } }, { 12, { Version("1.19.3"), Version("1.19.3") } }, { 13, { Version("1.19.4"), Version("1.19.4") } },
{ 14, { Version("1.20"), Version("1.20") } }
}; };
void ResourcePack::setPackFormat(int new_format_id) void ResourcePack::setPackFormat(int new_format_id)

View File

@ -352,7 +352,7 @@ QString PackInstallTask::getVersionForLoader(QString uid)
if(m_version.loader.recommended || m_version.loader.latest) { if(m_version.loader.recommended || m_version.loader.latest) {
for (int i = 0; i < vlist->versions().size(); i++) { for (int i = 0; i < vlist->versions().size(); i++) {
auto version = vlist->versions().at(i); auto version = vlist->versions().at(i);
auto reqs = version->requires(); auto reqs = version->requiredSet();
// filter by minecraft version, if the loader depends on a certain version. // filter by minecraft version, if the loader depends on a certain version.
// not all mod loaders depend on a given Minecraft version, so we won't do this // not all mod loaders depend on a given Minecraft version, so we won't do this

View File

@ -253,6 +253,8 @@ QList<BasePage*> ResourcePackDownloadDialog::getPages()
if (APPLICATION->capabilities() & Application::SupportsFlame) if (APPLICATION->capabilities() & Application::SupportsFlame)
pages.append(FlameResourcePackPage::create(this, *m_instance)); pages.append(FlameResourcePackPage::create(this, *m_instance));
m_selectedPage = dynamic_cast<ResourcePackResourcePage*>(pages[0]);
return pages; return pages;
} }
@ -278,6 +280,8 @@ QList<BasePage*> TexturePackDownloadDialog::getPages()
if (APPLICATION->capabilities() & Application::SupportsFlame) if (APPLICATION->capabilities() & Application::SupportsFlame)
pages.append(FlameTexturePackPage::create(this, *m_instance)); pages.append(FlameTexturePackPage::create(this, *m_instance));
m_selectedPage = dynamic_cast<TexturePackResourcePage*>(pages[0]);
return pages; return pages;
} }
@ -301,6 +305,8 @@ QList<BasePage*> ShaderPackDownloadDialog::getPages()
pages.append(ModrinthShaderPackPage::create(this, *m_instance)); pages.append(ModrinthShaderPackPage::create(this, *m_instance));
m_selectedPage = dynamic_cast<ShaderPackResourcePage*>(pages[0]);
return pages; return pages;
} }

View File

@ -68,7 +68,7 @@ QString AtlUserInteractionSupportImpl::chooseVersion(Meta::VersionList::Ptr vlis
// select recommended build // select recommended build
for (int i = 0; i < vlist->versions().size(); i++) { for (int i = 0; i < vlist->versions().size(); i++) {
auto version = vlist->versions().at(i); auto version = vlist->versions().at(i);
auto reqs = version->requires(); auto reqs = version->requiredSet();
// filter by minecraft version, if the loader depends on a certain version. // filter by minecraft version, if the loader depends on a certain version.
if (minecraftVersion != nullptr) { if (minecraftVersion != nullptr) {