Improves performance of StargateYamlConfiguration a bit
This commit is contained in:
		@@ -28,11 +28,13 @@ public class StargateYamlConfiguration extends YamlConfiguration {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public @NotNull String saveToString() {
 | 
					    public @NotNull String saveToString() {
 | 
				
			||||||
 | 
					        // Convert YAML comments to normal comments
 | 
				
			||||||
        return this.convertYAMLMappingsToComments(super.saveToString());
 | 
					        return this.convertYAMLMappingsToComments(super.saveToString());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public void loadFromString(@NotNull String contents) throws InvalidConfigurationException {
 | 
					    public void loadFromString(@NotNull String contents) throws InvalidConfigurationException {
 | 
				
			||||||
 | 
					        // Convert normal comments to YAML comments to prevent them from disappearing
 | 
				
			||||||
        super.loadFromString(this.convertCommentsToYAMLMappings(contents));
 | 
					        super.loadFromString(this.convertCommentsToYAMLMappings(contents));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -50,19 +52,23 @@ public class StargateYamlConfiguration extends YamlConfiguration {
 | 
				
			|||||||
        int commentId = 0;
 | 
					        int commentId = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (String line : configString.split("\n")) {
 | 
					        for (String line : configString.split("\n")) {
 | 
				
			||||||
            if (line.trim().startsWith("#")) {
 | 
					            String trimmed = line.trim();
 | 
				
			||||||
 | 
					            if (trimmed.startsWith("#")) {
 | 
				
			||||||
                //Temporarily store the comment line
 | 
					                //Temporarily store the comment line
 | 
				
			||||||
                currentComment.add(line.trim().replaceFirst(line.trim().startsWith("# ") ? "# " : "{2}#",
 | 
					                if (trimmed.startsWith("# ")) {
 | 
				
			||||||
                        START_OF_COMMENT_LINE));
 | 
					                    currentComment.add(trimmed.replaceFirst("# ", START_OF_COMMENT_LINE));
 | 
				
			||||||
 | 
					                } else {
 | 
				
			||||||
 | 
					                    currentComment.add(trimmed.replaceFirst("#", START_OF_COMMENT_LINE));
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                //Write the full formatted comment to the StringBuilder
 | 
					                //Write the full formatted comment to the StringBuilder
 | 
				
			||||||
                if (!currentComment.isEmpty()) {
 | 
					                if (!currentComment.isEmpty()) {
 | 
				
			||||||
                    int indentation = getIndentation(line);
 | 
					                    int indentation = getIndentation(line);
 | 
				
			||||||
                    generateCommentYAML(yamlBuilder, currentComment, commentId++, indentation);
 | 
					                    generateCommentYAML(yamlBuilder, currentComment, commentId++, indentation);
 | 
				
			||||||
                    currentComment = new ArrayList<>();
 | 
					                    currentComment.clear();
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                //Add the non-comment line assuming it isn't empty
 | 
					                //Add the non-comment line assuming it isn't empty
 | 
				
			||||||
                if (!line.trim().isEmpty()) {
 | 
					                if (!trimmed.isEmpty()) {
 | 
				
			||||||
                    yamlBuilder.append(line).append("\n");
 | 
					                    yamlBuilder.append(line).append("\n");
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user