From f36fb81249912f9c2b8467f074b9a20afbb6376a Mon Sep 17 00:00:00 2001 From: carm Date: Sat, 27 Sep 2025 02:19:48 +0800 Subject: [PATCH] feat: Add "getOr" function for values. --- .../lib/configuration/value/ConfigValue.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/cc/carm/lib/configuration/value/ConfigValue.java b/core/src/main/java/cc/carm/lib/configuration/value/ConfigValue.java index 320183d..66dba05 100644 --- a/core/src/main/java/cc/carm/lib/configuration/value/ConfigValue.java +++ b/core/src/main/java/cc/carm/lib/configuration/value/ConfigValue.java @@ -1,6 +1,7 @@ package cc.carm.lib.configuration.value; import cc.carm.lib.configuration.source.ConfigurationHolder; +import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -54,7 +55,18 @@ public abstract class ConfigValue extends ValueManifest { * @return Configured value or default value */ public T getOrDefault() { - return optional().orElse(defaults()); + return getOr(defaults()); + } + + /** + * Gets the configured value, or returns the specified default value if not present. + * + * @param defaults The default value to return if the configured value is not present + * @return Configured value or specified default value + */ + @Contract("!null -> !null") + public T getOr(T defaults) { + return optional().orElse(defaults); } /** @@ -138,4 +150,4 @@ public abstract class ConfigValue extends ValueManifest { holder().save(); } -} \ No newline at end of file +}