diff --git a/build.gradle b/build.gradle index b827f71eef..40e6c78d61 100644 --- a/build.gradle +++ b/build.gradle @@ -17,7 +17,7 @@ import org.gradle.plugins.ide.eclipse.model.SourceFolder plugins { id 'org.cadixdev.licenser' version '0.6.1' id 'com.github.ben-manes.versions' version '0.46.0' - id 'net.minecraftforge.gradleutils' version '2.+' + id 'net.minecraftforge.gradleutils' version '[2.2,2.3)' id 'eclipse' id 'de.undercouch.download' version '5.4.0' id 'net.minecraftforge.gradle.patcher' version '[6.0,6.2)' apply false diff --git a/src/main/java/net/minecraftforge/common/ForgeConfigSpec.java b/src/main/java/net/minecraftforge/common/ForgeConfigSpec.java index 34804da710..a399aa1181 100644 --- a/src/main/java/net/minecraftforge/common/ForgeConfigSpec.java +++ b/src/main/java/net/minecraftforge/common/ForgeConfigSpec.java @@ -24,6 +24,7 @@ import java.util.Objects; import java.util.function.Function; import java.util.function.Predicate; import java.util.function.Supplier; +import java.util.regex.Pattern; import java.util.stream.Collectors; import net.minecraftforge.fml.config.IConfigSpec; @@ -53,15 +54,16 @@ import org.jetbrains.annotations.Nullable; */ public class ForgeConfigSpec extends UnmodifiableConfigWrapper implements IConfigSpec//TODO: Remove extends and pipe everything through getSpec/getValues? { - private Map, String> levelComments; - private Map, String> levelTranslationKeys; + private final Map, String> levelComments; + private final Map, String> levelTranslationKeys; - private UnmodifiableConfig values; + private final UnmodifiableConfig values; private Config childConfig; private boolean isCorrecting = false; private static final Logger LOGGER = LogManager.getLogger(); + private static final Pattern WINDOWS_NEWLINE = Pattern.compile("\r\n"); private ForgeConfigSpec(UnmodifiableConfig storage, UnmodifiableConfig values, Map, String> levelComments, Map, String> levelTranslationKeys) { super(storage); @@ -123,11 +125,9 @@ public class ForgeConfigSpec extends UnmodifiableConfigWrapper configValues) { configValues.forEach(value -> { - if (value instanceof ConfigValue) { - final ConfigValue configValue = (ConfigValue) value; + if (value instanceof ConfigValue configValue) { configValue.clearCache(); - } else if (value instanceof Config) { - final Config innerConfig = (Config) value; + } else if (value instanceof Config innerConfig) { this.resetCaches(innerConfig.valueMap().values()); } }); @@ -268,10 +268,10 @@ public class ForgeConfigSpec extends UnmodifiableConfigWrapper 0 && string2.length() > 0) + if (!string1.isEmpty() && !string2.isEmpty()) { - return string1.replaceAll("\r\n", "\n") - .equals(string2.replaceAll("\r\n", "\n")); + return WINDOWS_NEWLINE.matcher(string1).replaceAll("\n") + .equals(WINDOWS_NEWLINE.matcher(string2).replaceAll("\n")); } } @@ -283,10 +283,10 @@ public class ForgeConfigSpec extends UnmodifiableConfigWrapper, String> levelComments = new HashMap<>(); - private Map, String> levelTranslationKeys = new HashMap<>(); - private List currentPath = new ArrayList<>(); - private List> values = new ArrayList<>(); + private final Map, String> levelComments = new HashMap<>(); + private final Map, String> levelTranslationKeys = new HashMap<>(); + private final List currentPath = new ArrayList<>(); + private final List> values = new ArrayList<>(); //Object public ConfigValue define(String path, T defaultValue) { @@ -370,7 +370,7 @@ public class ForgeConfigSpec extends UnmodifiableConfigWrapper list = Lists.newArrayList((List) value); + List list = new ArrayList<>((List) value); list.removeIf(elementValidator.negate()); if (list.isEmpty()) { LOGGER.debug(CORE, "List on key {} is deemed to need correction. It failed validation.", path.get(path.size() - 1)); @@ -390,7 +390,7 @@ public class ForgeConfigSpec extends UnmodifiableConfigWrapper list = Lists.newArrayList((List) value); + List list = new ArrayList<>((List) value); list.removeIf(elementValidator.negate()); if (list.isEmpty()) { LOGGER.debug(CORE, "List on key {} is deemed to need correction. It failed validation.", path.get(path.size() - 1)); @@ -691,7 +691,7 @@ public class ForgeConfigSpec extends UnmodifiableConfigWrapper> implements Predicate + public static class Range> implements Predicate { private final Class clazz; private final V min; @@ -821,7 +821,7 @@ public class ForgeConfigSpec extends UnmodifiableConfigWrapper getPath() { - return Lists.newArrayList(path); + return new ArrayList<>(path); } /**