diff --git a/src/helpers/settingsHelper.ts b/src/helpers/settingsHelper.ts index 526e10a..aea7584 100644 --- a/src/helpers/settingsHelper.ts +++ b/src/helpers/settingsHelper.ts @@ -57,7 +57,7 @@ export default abstract class SettingHelper { } let processedValue = rawValue; - if (typeof settingType.type === "string" && settingType.type.includes("/crypt")) { + if (typeof settingType.type === "string" && settingType.type.includes("/crypt") && processedValue != "") { processedValue = CodingHelper.decrypt(APPLICATION_SECRET, processedValue); } @@ -76,7 +76,7 @@ export default abstract class SettingHelper { * @param value The value to set */ public static async setSetting(key: K, value: SettingValueMapping[K]): Promise { - if (value === undefined || value === null) { + if (value === undefined || value === null || value == "") { if (key != "mail.password") this.resetSetting(key); return; } @@ -93,7 +93,7 @@ export default abstract class SettingHelper { newValue = CodingHelper.encrypt(APPLICATION_SECRET, stringValue); } - this.settings[key] = stringValue; + this.settings[key] = newValue; const [topic, settingKey] = key.split(".") as [SettingTopic, string]; await SettingCommandHandler.create({ @@ -265,9 +265,7 @@ export default abstract class SettingHelper { * @param oldValue The old value */ private static notifyListeners(key: SettingString, newValue: any, oldValue: any): void { - if (!this.listeners.has(key)) return; - - const callbacks = this.listeners.get(key)!; + const callbacks = this.listeners.get(key) ?? []; for (const callback of callbacks) { try { callback(newValue, oldValue); @@ -276,7 +274,7 @@ export default abstract class SettingHelper { } } - const topicCallbacks = this.topicListeners.get(key.split(".")[0] as SettingTopic)!; + const topicCallbacks = this.topicListeners.get(key.split(".")[0] as SettingTopic) ?? []; for (const callback of topicCallbacks) { try { callback();