aboutsummaryrefslogtreecommitdiff
path: root/launcher
diff options
context:
space:
mode:
authorJamie Mansfield <jmansfield@cadixdev.org>2022-05-28 23:26:47 +0100
committerJamie Mansfield <jmansfield@cadixdev.org>2022-05-29 00:04:26 +0100
commite7f35e6ca3b90437ef1fb8b02d31b4fbd47b866b (patch)
tree11636c153b2490bea0088f1cac02e995b7822dfb /launcher
parent699ad316f0d90580fa13d570d6c25aff903a470d (diff)
downloadPrismLauncher-e7f35e6ca3b90437ef1fb8b02d31b4fbd47b866b.tar.gz
PrismLauncher-e7f35e6ca3b90437ef1fb8b02d31b4fbd47b866b.tar.bz2
PrismLauncher-e7f35e6ca3b90437ef1fb8b02d31b4fbd47b866b.zip
API: Add settings to support managed packs
Managed packs means an installation of a modpack through a modpack provider. Managed packs track their origins (pack platform, name, id), so that in future features can exist around this - such as updating, and reinstalling.
Diffstat (limited to 'launcher')
-rw-r--r--launcher/BaseInstance.cpp49
-rw-r--r--launcher/BaseInstance.h9
2 files changed, 58 insertions, 0 deletions
diff --git a/launcher/BaseInstance.cpp b/launcher/BaseInstance.cpp
index 2fb31d94..c9394d3f 100644
--- a/launcher/BaseInstance.cpp
+++ b/launcher/BaseInstance.cpp
@@ -2,6 +2,7 @@
/*
* PolyMC - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
+ * Copyright (c) 2022 Jamie Mansfield <jmansfield@cadixdev.org>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -76,6 +77,14 @@ BaseInstance::BaseInstance(SettingsObjectPtr globalSettings, SettingsObjectPtr s
m_settings->registerPassthrough(globalSettings->getSetting("ConsoleMaxLines"), nullptr);
m_settings->registerPassthrough(globalSettings->getSetting("ConsoleOverflowStop"), nullptr);
+
+ // Managed Packs
+ m_settings->registerSetting("ManagedPack", false);
+ m_settings->registerSetting("ManagedPackType", "");
+ m_settings->registerSetting("ManagedPackID", "");
+ m_settings->registerSetting("ManagedPackName", "");
+ m_settings->registerSetting("ManagedPackVersionID", "");
+ m_settings->registerSetting("ManagedPackVersionName", "");
}
QString BaseInstance::getPreLaunchCommand()
@@ -93,6 +102,46 @@ QString BaseInstance::getPostExitCommand()
return settings()->get("PostExitCommand").toString();
}
+bool BaseInstance::isManagedPack()
+{
+ return settings()->get("ManagedPack").toBool();
+}
+
+QString BaseInstance::getManagedPackType()
+{
+ return settings()->get("ManagedPackType").toString();
+}
+
+QString BaseInstance::getManagedPackID()
+{
+ return settings()->get("ManagedPackID").toString();
+}
+
+QString BaseInstance::getManagedPackName()
+{
+ return settings()->get("ManagedPackName").toString();
+}
+
+QString BaseInstance::getManagedPackVersionID()
+{
+ return settings()->get("ManagedPackVersionID").toString();
+}
+
+QString BaseInstance::getManagedPackVersionName()
+{
+ return settings()->get("ManagedPackVersionName").toString();
+}
+
+void BaseInstance::setManagedPack(const QString& type, const QString& id, const QString& name, const QString& versionId, const QString& version)
+{
+ settings()->set("ManagedPack", true);
+ settings()->set("ManagedPackType", type);
+ settings()->set("ManagedPackID", id);
+ settings()->set("ManagedPackName", name);
+ settings()->set("ManagedPackVersionID", versionId);
+ settings()->set("ManagedPackVersionName", version);
+}
+
int BaseInstance::getConsoleMaxLines() const
{
auto lineSetting = settings()->getSetting("ConsoleMaxLines");
diff --git a/launcher/BaseInstance.h b/launcher/BaseInstance.h
index c973fcd4..66177614 100644
--- a/launcher/BaseInstance.h
+++ b/launcher/BaseInstance.h
@@ -2,6 +2,7 @@
/*
* PolyMC - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
+ * Copyright (c) 2022 Jamie Mansfield <jmansfield@cadixdev.org>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -139,6 +140,14 @@ public:
QString getPostExitCommand();
QString getWrapperCommand();
+ bool isManagedPack();
+ QString getManagedPackType();
+ QString getManagedPackID();
+ QString getManagedPackName();
+ QString getManagedPackVersionID();
+ QString getManagedPackVersionName();
+ void setManagedPack(const QString& type, const QString& id, const QString& name, const QString& versionId, const QString& version);
+
/// guess log level from a line of game log
virtual MessageLevel::Enum guessLevel(const QString &line, MessageLevel::Enum level)
{