diff --git a/src/main/java/net/aufdemrand/denizen/objects/Element.java b/src/main/java/net/aufdemrand/denizen/objects/Element.java index 1ed24a5710..be372367da 100644 --- a/src/main/java/net/aufdemrand/denizen/objects/Element.java +++ b/src/main/java/net/aufdemrand/denizen/objects/Element.java @@ -56,15 +56,15 @@ public Element(String prefix, String string) { } public double asDouble() { - return Double.valueOf(element); + return Double.valueOf(element.replace("%", "")); } public float asFloat() { - return Float.valueOf(element); + return Float.valueOf(element.replace("%", "")); } public int asInt() { - return Integer.valueOf(element); + return Integer.valueOf(element.replace("%", "")); } public boolean asBoolean() { diff --git a/src/main/java/net/aufdemrand/denizen/objects/aH.java b/src/main/java/net/aufdemrand/denizen/objects/aH.java index 6ee7caafe3..4f1089e5b2 100644 --- a/src/main/java/net/aufdemrand/denizen/objects/aH.java +++ b/src/main/java/net/aufdemrand/denizen/objects/aH.java @@ -20,7 +20,7 @@ */ public class aH { - public enum PrimitiveType { Float, Double, Integer, Boolean, String, Word } + public enum PrimitiveType { Float, Double, Integer, Boolean, String, Word, Percentage } final static Pattern floatPrimitive = Pattern.compile("^[-+]?[0-9]+[.]?[0-9]*([eE][-+]?[0-9]+)?$"); @@ -28,6 +28,9 @@ public enum PrimitiveType { Float, Double, Integer, Boolean, String, Word } final static Pattern doublePrimitive = Pattern.compile("(-)?(?:(?:\\d+)|)(?:(?:\\.\\d+)|)"); + final static Pattern percentagePrimitive = + Pattern.compile("(?:(?:\\d+)|)(?:(?:\\.\\d+)|)(%|)"); + final static Pattern integerPrimitive = Pattern.compile("(-)?\\d+"); @@ -116,6 +119,9 @@ public boolean matchesPrimitive(PrimitiveType argumentType) { case Boolean: return booleanPrimitive.matcher(value).matches(); + case Percentage: + return percentagePrimitive.matcher(value).matches(); + case String: return true; }