From cb051f7893d43c9dd5fc45116e27ffe0129f4efa Mon Sep 17 00:00:00 2001 From: Choonster TheMage Date: Thu, 31 Aug 2017 13:56:15 +1000 Subject: [PATCH] Don't parse category names as regular expressions in FieldWrapper.MapWrapper (#4334) --- .../java/net/minecraftforge/common/config/FieldWrapper.java | 5 +++-- src/test/java/net/minecraftforge/debug/ConfigTest.java | 5 +++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraftforge/common/config/FieldWrapper.java b/src/main/java/net/minecraftforge/common/config/FieldWrapper.java index 4a09813125..b388c44b1b 100644 --- a/src/main/java/net/minecraftforge/common/config/FieldWrapper.java +++ b/src/main/java/net/minecraftforge/common/config/FieldWrapper.java @@ -15,6 +15,7 @@ import com.google.common.collect.Lists; import net.minecraftforge.common.config.Config.RangeDouble; import net.minecraftforge.common.config.Config.RangeInt; +import org.apache.commons.lang3.StringUtils; import static net.minecraftforge.common.config.ConfigManager.*; @@ -131,13 +132,13 @@ public abstract class FieldWrapper implements IFieldWrapper @Override public Object getValue(String key) { - return theMap.get(key.replaceFirst(category + "." + name + ".", "")); + return theMap.get(StringUtils.replaceOnce(key, category + "." + name + ".", "")); } @Override public void setValue(String key, Object value) { - String suffix = key.replaceFirst(category + "." + name + ".", ""); + String suffix = StringUtils.replaceOnce(key, category + "." + name + ".", ""); theMap.put(suffix, value); } diff --git a/src/test/java/net/minecraftforge/debug/ConfigTest.java b/src/test/java/net/minecraftforge/debug/ConfigTest.java index 79834720b7..59c9f4a303 100644 --- a/src/test/java/net/minecraftforge/debug/ConfigTest.java +++ b/src/test/java/net/minecraftforge/debug/ConfigTest.java @@ -18,6 +18,7 @@ import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import org.apache.logging.log4j.Logger; +import java.util.HashMap; import java.util.Map; @Mod(modid = ConfigTest.MODID, name = "ConfigTest", version = "1.0", acceptableRemoteVersions = "*") @@ -150,6 +151,9 @@ public class ConfigTest @RequiresMcRestart public static Map theMap; + @Name("regex(test]") + public static Map regexText = new HashMap<>(); + static { theMap = Maps.newHashMap(); @@ -161,6 +165,7 @@ public class ConfigTest array[x] = i + x; } theMap.put("" + i, array); + regexText.put("" + i, "" + i); } } }