From db0ae36fa739256f76f4f70c39a0f0066923f9d8 Mon Sep 17 00:00:00 2001 From: nossr50 Date: Tue, 11 Jan 2022 19:22:28 -0800 Subject: [PATCH] fixed bug where duplicate comments with leading whitespace were ignored --- pom.xml | 2 +- .../gmail/nossr50/config/BukkitConfig.java | 25 +++++++++++++++++-- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index b20b94c6c..7991b0d73 100755 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 com.gmail.nossr50.mcMMO mcMMO - 2.1.208 + 2.1.209-SNAPSHOT mcMMO https://github.com/mcMMO-Dev/mcMMO diff --git a/src/main/java/com/gmail/nossr50/config/BukkitConfig.java b/src/main/java/com/gmail/nossr50/config/BukkitConfig.java index c14712f43..4feef929e 100644 --- a/src/main/java/com/gmail/nossr50/config/BukkitConfig.java +++ b/src/main/java/com/gmail/nossr50/config/BukkitConfig.java @@ -11,7 +11,9 @@ import java.util.List; import java.util.Set; public abstract class BukkitConfig { - public static final String CURRENT_CONFIG_PATCH_VER = "ConfigPatchVersion: 1"; + public static final String CONFIG_PATCH_PREFIX = "ConfigPatchVersion:"; + public static final String CURRENT_CONFIG_PATCH_VER = "ConfigPatchVersion: 2"; + public static final char COMMENT_PREFIX = '#'; protected final String fileName; protected final File configFile; protected YamlConfiguration config; @@ -149,7 +151,11 @@ public abstract class BukkitConfig { break; } - if (line.startsWith("#")) { + //Older version, don't append this line + if(line.startsWith(CONFIG_PATCH_PREFIX)) + continue; + + if (isFirstCharAsciiCharacter(line, COMMENT_PREFIX)) { if(seenBefore.contains(line)) dupedLines++; else @@ -189,4 +195,19 @@ public abstract class BukkitConfig { ex.printStackTrace(); } } + + private boolean isFirstCharAsciiCharacter(String line, char character) { + if(line == null || line.isEmpty()) { + return true; + } + + for(Character c : line.toCharArray()) { + if(c.equals(' ')) + continue; + + return c.equals(character); + } + + return false; + } } \ No newline at end of file