From 9236befd7ffa0bade8e19f336a3d639ded3dffea Mon Sep 17 00:00:00 2001 From: stjn Date: Wed, 10 Nov 2021 20:03:39 +0100 Subject: [PATCH] Fixed regex for double validation in config --- src/main/java/com/alttd/config/Config.java | 8 ++------ src/main/java/com/alttd/config/WorthConfig.java | 8 +++++++- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/alttd/config/Config.java b/src/main/java/com/alttd/config/Config.java index 438fd44..51efdd9 100644 --- a/src/main/java/com/alttd/config/Config.java +++ b/src/main/java/com/alttd/config/Config.java @@ -5,10 +5,6 @@ import com.alttd.objects.VillagerType; import com.alttd.util.Logger; import com.google.common.collect.Range; import it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap; -import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; -import it.unimi.dsi.fastutil.ints.Int2ObjectSortedMap; -import it.unimi.dsi.fastutil.ints.Int2ObjectSortedMaps; -import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; import org.bukkit.Material; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.inventory.ItemStack; @@ -125,7 +121,7 @@ public final class Config extends AbstractConfig { public static Int2ObjectAVLTreeMap> pointsRangeMap = new Int2ObjectAVLTreeMap<>(); private static void loadPointRange() { pointsRangeMap.clear(); - Pattern pattern = Pattern.compile("[1-9][0-9]{0,2}(.[0-9]{1,2})?-[1-9][0-9]{0,2}(.[0-9]{1,2})?"); + Pattern pattern = Pattern.compile("(0|([1-9][0-9]{0,2}))(.[0-9]{1,2})?-(0|([1-9][0-9]{0,2}))(.[0-9]{1,2})?"); ConfigurationSection configurationSection = config.getConfigurationSection("points"); if (configurationSection == null) { @@ -154,7 +150,7 @@ public final class Config extends AbstractConfig { Matcher matcher = pattern.matcher(range); if (!matcher.matches()) { Logger.warning("Invalid point value % for % in config " + - "should be double - double (0-2.05)", range, key); + "should be double-double (0-2.05)", range, key); continue; } String[] split = range.split("-"); diff --git a/src/main/java/com/alttd/config/WorthConfig.java b/src/main/java/com/alttd/config/WorthConfig.java index 9241ff5..c408c8c 100644 --- a/src/main/java/com/alttd/config/WorthConfig.java +++ b/src/main/java/com/alttd/config/WorthConfig.java @@ -1,5 +1,6 @@ package com.alttd.config; +import com.alttd.VillagerUI; import com.alttd.objects.Price; import com.alttd.util.Logger; import com.alttd.util.Utilities; @@ -31,10 +32,15 @@ public class WorthConfig extends AbstractConfig { private static void loadWorth() { //TODO test after removing points prices.clear(); ConfigurationSection worth = config.getConfigurationSection("worth"); + if (worth == null) { + Logger.severe("No worth in worth.yml! Stopping VillagerUI."); + VillagerUI.getInstance().getServer().getPluginManager().disablePlugin(VillagerUI.getInstance()); + return; + } Set materials = worth.getKeys(false); for (String key : materials) { if (key == null) { - Logger.warning("Invalid key in worth.yml: %.", key); + Logger.severe("Null key in worth.yml?"); continue; } prices.put(Material.getMaterial(key), new Price(Utilities.round(worth.getDouble(key), 2)));