diff --git a/eco-api/src/main/java/com/willfp/eco/core/config/interfaces/JSONConfig.java b/eco-api/src/main/java/com/willfp/eco/core/config/interfaces/JSONConfig.java index d084e0df..fdd176c3 100644 --- a/eco-api/src/main/java/com/willfp/eco/core/config/interfaces/JSONConfig.java +++ b/eco-api/src/main/java/com/willfp/eco/core/config/interfaces/JSONConfig.java @@ -29,6 +29,27 @@ public interface JSONConfig extends Config { @Nullable List getSubsectionsOrNull(@NotNull String path); + + /** + * Get subsection from config. + * + * @param path The key to check. + * @return The subsection. Throws NPE if not found. + */ + @Override + @NotNull + JSONConfig getSubsection(@NotNull String path); + + /** + * Get subsection from config. + * + * @param path The key to check. + * @return The subsection, or null if not found. + */ + @Override + @Nullable + JSONConfig getSubsectionOrNull(@NotNull String path); + @Override JSONConfig clone(); } diff --git a/eco-api/src/main/java/com/willfp/eco/core/config/json/wrapper/JSONConfigWrapper.java b/eco-api/src/main/java/com/willfp/eco/core/config/json/wrapper/JSONConfigWrapper.java index 0e5ceefc..ff274b6e 100644 --- a/eco-api/src/main/java/com/willfp/eco/core/config/json/wrapper/JSONConfigWrapper.java +++ b/eco-api/src/main/java/com/willfp/eco/core/config/json/wrapper/JSONConfigWrapper.java @@ -31,6 +31,16 @@ public abstract class JSONConfigWrapper extends ConfigWrapper implem return this.getHandle().getSubsectionsOrNull(path); } + @Override + public @NotNull JSONConfig getSubsection(@NotNull final String path) { + return this.getHandle().getSubsection(path); + } + + @Override + public @Nullable JSONConfig getSubsectionOrNull(@NotNull final String path) { + return this.getHandle().getSubsectionOrNull(path); + } + @Override public JSONConfig clone() { return this.getHandle().clone(); diff --git a/eco-core/core-backend/src/main/java/com/willfp/eco/internal/config/json/EcoJSONConfigWrapper.java b/eco-core/core-backend/src/main/java/com/willfp/eco/internal/config/json/EcoJSONConfigWrapper.java index 35f7b111..662b1b48 100644 --- a/eco-core/core-backend/src/main/java/com/willfp/eco/internal/config/json/EcoJSONConfigWrapper.java +++ b/eco-core/core-backend/src/main/java/com/willfp/eco/internal/config/json/EcoJSONConfigWrapper.java @@ -2,7 +2,6 @@ package com.willfp.eco.internal.config.json; import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import com.willfp.eco.core.config.interfaces.Config; import com.willfp.eco.core.config.interfaces.JSONConfig; import com.willfp.eco.util.StringUtils; import lombok.Getter; @@ -150,15 +149,15 @@ public class EcoJSONConfigWrapper implements JSONConfig { @Override @NotNull - public Config getSubsection(@NotNull final String path) { - Config subsection = getSubsectionOrNull(path); + public JSONConfig getSubsection(@NotNull final String path) { + JSONConfig subsection = getSubsectionOrNull(path); Validate.notNull(subsection); return subsection; } @Override @Nullable - public Config getSubsectionOrNull(@NotNull final String path) { + public JSONConfig getSubsectionOrNull(@NotNull final String path) { if (values.containsKey(path)) { Map subsection = (Map) values.get(path); return new EcoJSONConfigSection(subsection); @@ -171,8 +170,7 @@ public class EcoJSONConfigWrapper implements JSONConfig { @NotNull public List getSubsections(@NotNull final String path) { List subsections = getSubsectionsOrNull(path); - Validate.notNull(subsections); - return subsections; + return subsections == null ? new ArrayList<>() : subsections; } @Override