diff --git a/launcher/Application.cpp b/launcher/Application.cpp
index d6c135de7..bbea34c76 100644
--- a/launcher/Application.cpp
+++ b/launcher/Application.cpp
@@ -614,6 +614,9 @@ Application::Application(int &argc, char **argv) : QApplication(argc, argv)
// Mod loader settings
m_settings->registerSetting("DisableQuiltBeacon", false);
+ // Legacy settings
+ m_settings->registerSetting("OnlineFixes", true);
+
// Native library workarounds
m_settings->registerSetting("UseNativeOpenAL", false);
m_settings->registerSetting("UseNativeGLFW", false);
diff --git a/launcher/minecraft/MinecraftInstance.cpp b/launcher/minecraft/MinecraftInstance.cpp
index e0e4cdcf0..b4b0b4aa3 100644
--- a/launcher/minecraft/MinecraftInstance.cpp
+++ b/launcher/minecraft/MinecraftInstance.cpp
@@ -191,6 +191,10 @@ void MinecraftInstance::loadSpecificSettings()
auto modLoaderSettings = m_settings->registerSetting("OverrideModLoaderSettings", false);
m_settings->registerOverride(global_settings->getSetting("DisableQuiltBeacon"), modLoaderSettings);
+ // Legacy-related options
+ auto legacySettings = m_settings->registerSetting("OverrideLegacySettings", true);
+ m_settings->registerOverride(global_settings->getSetting("OnlineFixes"), legacySettings);
+
m_settings->set("InstanceType", "OneSix");
}
@@ -202,8 +206,6 @@ void MinecraftInstance::loadSpecificSettings()
m_settings->registerSetting("UseAccountForInstance", false);
m_settings->registerSetting("InstanceAccountId", "");
- m_settings->registerSetting("OnlineFixes", true);
-
qDebug() << "Instance-type specific settings were loaded!";
setSpecificSettingsLoaded(true);
diff --git a/launcher/ui/pages/global/MinecraftPage.cpp b/launcher/ui/pages/global/MinecraftPage.cpp
index 954823564..cdab4feb6 100644
--- a/launcher/ui/pages/global/MinecraftPage.cpp
+++ b/launcher/ui/pages/global/MinecraftPage.cpp
@@ -103,6 +103,9 @@ void MinecraftPage::applySettings()
// Mod loader settings
s->set("DisableQuiltBeacon", ui->disableQuiltBeaconCheckBox->isChecked());
+
+ // Legacy settings
+ s->set("OnlineFixes", ui->onlineFixes->isChecked());
}
void MinecraftPage::loadSettings()
@@ -143,6 +146,8 @@ void MinecraftPage::loadSettings()
ui->quitAfterGameStopCheck->setChecked(s->get("QuitAfterGameStop").toBool());
ui->disableQuiltBeaconCheckBox->setChecked(s->get("DisableQuiltBeacon").toBool());
+
+ ui->onlineFixes->setChecked(s->get("OnlineFixes").toBool());
}
void MinecraftPage::retranslate()
diff --git a/launcher/ui/pages/global/MinecraftPage.ui b/launcher/ui/pages/global/MinecraftPage.ui
index a3188dccb..cd0f4fafd 100644
--- a/launcher/ui/pages/global/MinecraftPage.ui
+++ b/launcher/ui/pages/global/MinecraftPage.ui
@@ -198,11 +198,30 @@
-
+
+ Disable Quilt loader's beacon for counting monthly active users
+
Disable Quilt Loader Beacon
+
+
+
+
+
+ -
+
+
+ Legacy settings
+
+
+
-
+
- Disable Quilt loader's beacon for counting monthly active users
+ <html><head/><body><p>Emulates usages of old online services which are no longer operating.</p><p>This currently allows modern skins to be used.</p></body></html>
+
+
+ Enable online fixes
diff --git a/launcher/ui/pages/instance/InstanceSettingsPage.cpp b/launcher/ui/pages/instance/InstanceSettingsPage.cpp
index 4d3cd16dd..7b019282b 100644
--- a/launcher/ui/pages/instance/InstanceSettingsPage.cpp
+++ b/launcher/ui/pages/instance/InstanceSettingsPage.cpp
@@ -290,8 +290,13 @@ void InstanceSettingsPage::applySettings()
m_settings->reset("DisableQuiltBeacon");
}
- bool onlineFixes = ui->onlineFixes->isChecked();
- m_settings->set("OnlineFixes", onlineFixes);
+ bool overrideLegacySettings = ui->legacySettingsGroupBox->isChecked();
+ m_settings->set("OverrideLegacySettings", overrideLegacySettings);
+ if (overrideLegacySettings) {
+ m_settings->set("OnlineFixes", ui->onlineFixes->isChecked());
+ } else {
+ m_settings->reset("OnlineFixes");
+ }
// FIXME: This should probably be called by a signal instead
m_instance->updateRuntimeContext();
@@ -398,8 +403,8 @@ void InstanceSettingsPage::loadSettings()
ui->modLoaderSettingsGroupBox->setChecked(m_settings->get("OverrideModLoaderSettings").toBool());
ui->disableQuiltBeaconCheckBox->setChecked(m_settings->get("DisableQuiltBeacon").toBool());
+ ui->legacySettingsGroupBox->setChecked(m_settings->get("OverrideLegacySettings").toBool());
ui->onlineFixes->setChecked(m_settings->get("OnlineFixes").toBool());
- ui->onlineFixes->setVisible(m_instance->traits().contains("legacyServices"));
}
void InstanceSettingsPage::on_javaDetectBtn_clicked()
diff --git a/launcher/ui/pages/instance/InstanceSettingsPage.ui b/launcher/ui/pages/instance/InstanceSettingsPage.ui
index 9018659aa..4548b2e72 100644
--- a/launcher/ui/pages/instance/InstanceSettingsPage.ui
+++ b/launcher/ui/pages/instance/InstanceSettingsPage.ui
@@ -543,23 +543,48 @@
-
+
+ Mod loader settings
+
true
false
-
- Mod loader settings
-
-
+
+ Disable Quilt loader's beacon for counting monthly active users
+
Disable Quilt Loader Beacon
+
+
+
+
+
+ -
+
+
+ Legacy settings
+
+
+ true
+
+
+ false
+
+
+
-
+
- Disable Quilt loader's beacon for counting monthly active users
+ <html><head/><body><p>Emulates usages of old online services which are no longer operating.</p><p>This currently allows modern skins to be used.</p></body></html>
+
+
+ Enable online fixes
@@ -668,16 +693,6 @@
- -
-
-
- <html><head/><body><p>Fixes usages of old online services which are no longer operating by emulating them or redirecting to their modern counterparts.</p><p>This currently only allows modern skins to be used.</p></body></html>
-
-
- Enable online fixes
-
-
-
-