diff --git a/pom.xml b/pom.xml index 14d5d76..635e17d 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ dev.padrewin colddev - 1.4.7 + 1.4.8 jar ColdDev diff --git a/src/main/java/dev/padrewin/colddev/config/CommentedConfigurationSection.java b/src/main/java/dev/padrewin/colddev/config/CommentedConfigurationSection.java index d95df2a..40ae4c8 100644 --- a/src/main/java/dev/padrewin/colddev/config/CommentedConfigurationSection.java +++ b/src/main/java/dev/padrewin/colddev/config/CommentedConfigurationSection.java @@ -30,17 +30,43 @@ public void set(String path, Object value, String... comments) { } public void addComments(String... comments) { - for (String comment : comments) - this.set(CommentedFileConfiguration.COMMENT_KEY_PREFIX + this.commentsCounter.getAndIncrement(), " " + comment); + Set existingComments = new LinkedHashSet<>(); + for (String key : this.config.getKeys(false)) { + if (key.startsWith(CommentedFileConfiguration.COMMENT_KEY_PREFIX)) { + Object value = this.config.get(key); + if (value instanceof String) { + existingComments.add(((String) value).trim()); + } + } + } + + for (String comment : comments) { + if (!existingComments.contains(comment.trim())) { + this.set(CommentedFileConfiguration.COMMENT_KEY_PREFIX + this.commentsCounter.getAndIncrement(), " " + comment); + } + } } public void addPathedComments(String path, String... comments) { - if (!this.contains(path)) { - int subpathIndex = path.lastIndexOf('.'); - String subpath = subpathIndex == -1 ? "" : path.substring(0, subpathIndex) + '.'; + if (this.contains(path)) return; // Dacă `path` există, evităm duplicarea. + + Set existingComments = new LinkedHashSet<>(); + int subpathIndex = path.lastIndexOf('.'); + String subpath = subpathIndex == -1 ? "" : path.substring(0, subpathIndex) + '.'; + + for (String key : this.config.getKeys(false)) { + if (key.startsWith(CommentedFileConfiguration.COMMENT_KEY_PREFIX)) { + Object value = this.config.get(key); + if (value instanceof String) { + existingComments.add(((String) value).trim()); + } + } + } - for (String comment : comments) + for (String comment : comments) { + if (!existingComments.contains(comment.trim())) { this.set(subpath + CommentedFileConfiguration.COMMENT_KEY_PREFIX + this.commentsCounter.getAndIncrement(), " " + comment); + } } }