From 9f8e6f5168879e9b9b447ec563bb93900c6e1943 Mon Sep 17 00:00:00 2001 From: altrisi Date: Wed, 26 Nov 2025 23:16:37 +0100 Subject: [PATCH] Don't save config until rule value is checked to be valid Found by #2111 --- src/main/java/carpet/api/settings/SettingsManager.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/carpet/api/settings/SettingsManager.java b/src/main/java/carpet/api/settings/SettingsManager.java index 2b4f341b..480cf51e 100644 --- a/src/main/java/carpet/api/settings/SettingsManager.java +++ b/src/main/java/carpet/api/settings/SettingsManager.java @@ -695,16 +695,16 @@ public class SettingsManager { { if (locked()) return 0; if (!rules.containsKey(rule.name())) return 0; - ConfigReadResult conf = readSettingsFromConf(getFile()); - conf.ruleMap().put(rule.name(), stringValue); - writeSettingsToConf(conf); // this may feels weird, but if conf - // is locked, it will never reach this point. try { rule.set(source, stringValue); Messenger.m(source ,"gi "+String.format(tr(TranslationKeys.DEFAULT_SET), RuleHelper.translatedName(rule), stringValue)); } catch (InvalidRuleValueException e) { e.notifySource(rule.name(), source); + return 0; } + ConfigReadResult conf = readSettingsFromConf(getFile()); + conf.ruleMap().put(rule.name(), stringValue); + writeSettingsToConf(conf); return 1; } // removes overrides of the default values in the file