diff --git a/src/core/@types/javaApi.d.ts b/src/core/@types/javaApi.d.ts
index 0631cf78..0d1aad5e 100644
--- a/src/core/@types/javaApi.d.ts
+++ b/src/core/@types/javaApi.d.ts
@@ -751,6 +751,7 @@ export interface InstanceSettings {
memory: number;
fullscreen: boolean;
updateChannel: string;
+ preventMetaModInjection: boolean;
javaArgs: string;
shellArgs: string;
programArgs: string;
diff --git a/src/views/Settings/InstanceSettings.vue b/src/views/Settings/InstanceSettings.vue
index 6f126cbc..27594a01 100644
--- a/src/views/Settings/InstanceSettings.vue
+++ b/src/views/Settings/InstanceSettings.vue
@@ -66,6 +66,15 @@
{
+ saveMutated()
+ }" />
+
diff --git a/subprocess/src/main/java/net/creeperhost/creeperlauncher/data/InstanceJson.java b/subprocess/src/main/java/net/creeperhost/creeperlauncher/data/InstanceJson.java
index 4de7b978..d22a87b7 100644
--- a/subprocess/src/main/java/net/creeperhost/creeperlauncher/data/InstanceJson.java
+++ b/subprocess/src/main/java/net/creeperhost/creeperlauncher/data/InstanceJson.java
@@ -66,7 +66,7 @@ public class InstanceJson {
* When enabled, the app will not inject mods from the meta.modpacks.ch system. Sometimes these can
* cause issues, so it's good to let the user have the option to turn them off
*/
- public boolean preventMetaModInjection = false;
+ public boolean preventMetaModInjection = Settings.getSettings().instanceDefaults().preventMetaModInjection();
public byte packType;
// TODO migrate this to `isPrivate`
diff --git a/subprocess/src/main/java/net/creeperhost/creeperlauncher/storage/settings/Settings.java b/subprocess/src/main/java/net/creeperhost/creeperlauncher/storage/settings/Settings.java
index 1f65b897..db23a5eb 100644
--- a/subprocess/src/main/java/net/creeperhost/creeperlauncher/storage/settings/Settings.java
+++ b/subprocess/src/main/java/net/creeperhost/creeperlauncher/storage/settings/Settings.java
@@ -200,6 +200,7 @@ private SettingsData migrate() {
getOrDefault("memory", Integer::parseInt, DEFAULT_SETTINGS.instanceDefaults().memory()),
getOrDefault("fullscreen", Boolean::parseBoolean, DEFAULT_SETTINGS.instanceDefaults().fullscreen()),
getOrDefault("updateChannel", DEFAULT_SETTINGS.instanceDefaults().updateChannel()),
+ getOrDefault("preventMetaModInjection", Boolean::parseBoolean, DEFAULT_SETTINGS.instanceDefaults().preventMetaModInjection()),
getOrDefault("jvmargs", DEFAULT_SETTINGS.instanceDefaults().javaArgs()),
getOrDefault("shellArgs", DEFAULT_SETTINGS.instanceDefaults().shellArgs()),
"" // There is no existing setting for this
diff --git a/subprocess/src/main/java/net/creeperhost/creeperlauncher/storage/settings/SettingsData.java b/subprocess/src/main/java/net/creeperhost/creeperlauncher/storage/settings/SettingsData.java
index ed821793..3354a9b2 100644
--- a/subprocess/src/main/java/net/creeperhost/creeperlauncher/storage/settings/SettingsData.java
+++ b/subprocess/src/main/java/net/creeperhost/creeperlauncher/storage/settings/SettingsData.java
@@ -99,6 +99,7 @@ public static SettingsData createDefault() {
computeRecommendedInstanceRam(),
false,
"release",
+ false,
String.join(" ", MOJANG_DEFAULT_ARGS),
"",
""
@@ -200,16 +201,18 @@ public static final class InstanceSettings {
private int memory;
private boolean fullscreen;
private String updateChannel;
+ private boolean preventMetaModInjection;
private String javaArgs;
private String shellArgs;
private String programArgs;
- public InstanceSettings(int width, int height, int memory, boolean fullscreen, String updateChannel, String javaArgs, String shellArgs, String programArgs) {
+ public InstanceSettings(int width, int height, int memory, boolean fullscreen, String updateChannel, boolean preventMetaModInjection, String javaArgs, String shellArgs, String programArgs) {
this.width = width;
this.height = height;
this.memory = memory;
this.fullscreen = fullscreen;
this.updateChannel = updateChannel;
+ this.preventMetaModInjection = preventMetaModInjection;
this.javaArgs = javaArgs;
this.shellArgs = shellArgs;
this.programArgs = programArgs;
@@ -234,6 +237,10 @@ public boolean fullscreen() {
public String updateChannel() {
return updateChannel;
}
+
+ public boolean preventMetaModInjection() {
+ return preventMetaModInjection;
+ }
public String javaArgs() {
return javaArgs;