Skip to content

Commit

Permalink
Merge pull request PrismLauncher#2018 from Trial97/coremods
Browse files Browse the repository at this point in the history
Ensure that core mods tab is visible on correct versions
  • Loading branch information
TheKodeToad authored Aug 25, 2024
2 parents 70a0a71 + ebad11d commit 23c69e7
Showing 1 changed file with 25 additions and 9 deletions.
34 changes: 25 additions & 9 deletions launcher/ui/pages/instance/ModFolderPage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@

#include "Version.h"
#include "tasks/ConcurrentTask.h"
#include "tasks/Task.h"
#include "ui/dialogs/ProgressDialog.h"

ModFolderPage::ModFolderPage(BaseInstance* inst, std::shared_ptr<ModFolderModel> mods, QWidget* parent)
Expand Down Expand Up @@ -322,7 +323,27 @@ void ModFolderPage::updateMods(bool includeDeps)

CoreModFolderPage::CoreModFolderPage(BaseInstance* inst, std::shared_ptr<ModFolderModel> mods, QWidget* 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
{
Expand All @@ -332,15 +353,10 @@ bool CoreModFolderPage::shouldDisplay() const
return true;

auto version = inst->getPackProfile();

if (!version)
return true;
if (!version->getComponent("net.minecraftforge"))
if (!version || !version->getComponent("net.minecraftforge") || !version->getComponent("net.minecraft"))
return false;
if (!version->getComponent("net.minecraft"))
return false;
if (version->getComponent("net.minecraft")->getReleaseDateTime() < g_VersionFilterData.legacyCutoffDate)
return true;
auto minecraftCmp = version->getComponent("net.minecraft");
return minecraftCmp->m_loaded && minecraftCmp->getReleaseDateTime() < g_VersionFilterData.legacyCutoffDate;
}
return false;
}
Expand Down

0 comments on commit 23c69e7

Please sign in to comment.