diff --git a/pom.xml b/pom.xml
index e66db1b..14d5d76 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
dev.padrewin
colddev
- 1.4.6
+ 1.4.7
jar
ColdDev
diff --git a/src/main/java/dev/padrewin/colddev/config/ColdSettingSerializers.java b/src/main/java/dev/padrewin/colddev/config/ColdSettingSerializers.java
index c40a156..5b7c1b3 100644
--- a/src/main/java/dev/padrewin/colddev/config/ColdSettingSerializers.java
+++ b/src/main/java/dev/padrewin/colddev/config/ColdSettingSerializers.java
@@ -1,9 +1,11 @@
package dev.padrewin.colddev.config;
+import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.function.Function;
import java.util.stream.Collectors;
+import java.util.stream.IntStream;
import org.bukkit.Material;
public final class ColdSettingSerializers {
@@ -78,6 +80,34 @@ public void write(CommentedConfigurationSection config, String key, T value, Str
}
};
}
- //endregion
-}
\ No newline at end of file
+ public static ColdSettingSerializer> list(ColdSettingSerializer elementSerializer) {
+ return new ColdSettingSerializer>() {
+ @Override
+ public List read(CommentedConfigurationSection config, String setting) {
+ List> rawList = config.getList(setting);
+ if (rawList == null) {
+ return Collections.emptyList();
+ }
+ return rawList.stream()
+ .map(element -> elementSerializer.read(config, setting + "." + rawList.indexOf(element)))
+ .filter(Objects::nonNull)
+ .collect(Collectors.toList());
+ }
+
+ @Override
+ public void write(CommentedConfigurationSection config, String key, List value, String... comments) {
+ config.addPathedComments(key, comments); // Adaugă comentarii pentru secțiune
+
+ // Dacă lista este null sau goală, scrie-o explicit ca o listă YAML
+ if (value == null || value.isEmpty()) {
+ config.set(key, Collections.emptyList());
+ } else {
+ config.set(key, value);
+ }
+ }
+ };
+ }
+
+ //endregion
+}