From 486149fa01c4583e78359575b7fef27a666a1ccc Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Thu, 20 Apr 2023 18:44:46 +0200 Subject: [PATCH] Improves performance of StargateYamlConfiguration a bit --- .../config/StargateYamlConfiguration.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/knarcraft/stargate/config/StargateYamlConfiguration.java b/src/main/java/net/knarcraft/stargate/config/StargateYamlConfiguration.java index 7a92966..6ebd9bd 100644 --- a/src/main/java/net/knarcraft/stargate/config/StargateYamlConfiguration.java +++ b/src/main/java/net/knarcraft/stargate/config/StargateYamlConfiguration.java @@ -28,11 +28,13 @@ public class StargateYamlConfiguration extends YamlConfiguration { @Override public @NotNull String saveToString() { + // Convert YAML comments to normal comments return this.convertYAMLMappingsToComments(super.saveToString()); } @Override public void loadFromString(@NotNull String contents) throws InvalidConfigurationException { + // Convert normal comments to YAML comments to prevent them from disappearing super.loadFromString(this.convertCommentsToYAMLMappings(contents)); } @@ -50,19 +52,23 @@ public class StargateYamlConfiguration extends YamlConfiguration { int commentId = 0; for (String line : configString.split("\n")) { - if (line.trim().startsWith("#")) { + String trimmed = line.trim(); + if (trimmed.startsWith("#")) { //Temporarily store the comment line - currentComment.add(line.trim().replaceFirst(line.trim().startsWith("# ") ? "# " : "{2}#", - START_OF_COMMENT_LINE)); + if (trimmed.startsWith("# ")) { + currentComment.add(trimmed.replaceFirst("# ", START_OF_COMMENT_LINE)); + } else { + currentComment.add(trimmed.replaceFirst("#", START_OF_COMMENT_LINE)); + } } else { //Write the full formatted comment to the StringBuilder if (!currentComment.isEmpty()) { int indentation = getIndentation(line); generateCommentYAML(yamlBuilder, currentComment, commentId++, indentation); - currentComment = new ArrayList<>(); + currentComment.clear(); } //Add the non-comment line assuming it isn't empty - if (!line.trim().isEmpty()) { + if (!trimmed.isEmpty()) { yamlBuilder.append(line).append("\n"); } }