Merge pull request #2018 from Trial97/coremods

Ensure that core mods tab is visible on correct versions
This commit is contained in:
TheKodeToad 2024-08-25 13:01:27 +01:00 committed by GitHub
commit 23c69e7f94
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -68,6 +68,7 @@
#include "Version.h" #include "Version.h"
#include "tasks/ConcurrentTask.h" #include "tasks/ConcurrentTask.h"
#include "tasks/Task.h"
#include "ui/dialogs/ProgressDialog.h" #include "ui/dialogs/ProgressDialog.h"
ModFolderPage::ModFolderPage(BaseInstance* inst, std::shared_ptr<ModFolderModel> mods, QWidget* parent) ModFolderPage::ModFolderPage(BaseInstance* inst, std::shared_ptr<ModFolderModel> mods, QWidget* parent)
@ -322,7 +323,27 @@ void ModFolderPage::updateMods(bool includeDeps)
CoreModFolderPage::CoreModFolderPage(BaseInstance* inst, std::shared_ptr<ModFolderModel> mods, QWidget* parent) CoreModFolderPage::CoreModFolderPage(BaseInstance* inst, std::shared_ptr<ModFolderModel> mods, QWidget* parent)
: ModFolderPage(inst, mods, parent) : ModFolderPage(inst, mods, parent)
{} {
auto mcInst = dynamic_cast<MinecraftInstance*>(m_instance);
if (mcInst) {
auto version = mcInst->getPackProfile();
if (version && version->getComponent("net.minecraftforge") && version->getComponent("net.minecraft")) {
auto minecraftCmp = version->getComponent("net.minecraft");
if (!minecraftCmp->m_loaded) {
version->reload(Net::Mode::Offline);
auto update = version->getCurrentTask();
if (update) {
connect(update.get(), &Task::finished, this, [this] {
if (m_container) {
m_container->refreshContainer();
}
});
update->start();
}
}
}
}
}
bool CoreModFolderPage::shouldDisplay() const bool CoreModFolderPage::shouldDisplay() const
{ {
@ -332,15 +353,10 @@ bool CoreModFolderPage::shouldDisplay() const
return true; return true;
auto version = inst->getPackProfile(); auto version = inst->getPackProfile();
if (!version || !version->getComponent("net.minecraftforge") || !version->getComponent("net.minecraft"))
if (!version)
return true;
if (!version->getComponent("net.minecraftforge"))
return false; return false;
if (!version->getComponent("net.minecraft")) auto minecraftCmp = version->getComponent("net.minecraft");
return false; return minecraftCmp->m_loaded && minecraftCmp->getReleaseDateTime() < g_VersionFilterData.legacyCutoffDate;
if (version->getComponent("net.minecraft")->getReleaseDateTime() < g_VersionFilterData.legacyCutoffDate)
return true;
} }
return false; return false;
} }