diff --git a/src/main/java/net/pingex/dcf/util/ArgumentParser.java b/src/main/java/net/pingex/dcf/util/ArgumentParser.java index 41b9f22..489e9d9 100644 --- a/src/main/java/net/pingex/dcf/util/ArgumentParser.java +++ b/src/main/java/net/pingex/dcf/util/ArgumentParser.java @@ -1,9 +1,12 @@ package net.pingex.dcf.util; import org.apache.commons.lang3.ClassUtils; - +import sx.blah.discord.api.IDiscordClient; +import sx.blah.discord.handle.obj.IUser; import java.util.ArrayList; import java.util.List; +import java.util.Optional; +import java.util.regex.Pattern; /** * Util class used to parse a String into primitive types. @@ -21,7 +24,7 @@ public class ArgumentParser */ public static Object parse(Class> target, String value) throws IllegalArgumentException { - if(value == null || value.equals("null") ) return null; + if(value == null || value.equalsIgnoreCase("null")) return null; if(Boolean.class == target || Boolean.TYPE == target) return Boolean.parseBoolean(value); if(Byte.class == target || Byte.TYPE == target) return Byte.parseByte(value); if(Short.class == target || Short.TYPE == target) return Short.parseShort(value); @@ -77,6 +80,43 @@ public class ArgumentParser return outputList; } + private static Pattern usernamePattern = Pattern.compile("^.*#\\d{4}$"); + private static Pattern idPattern = Pattern.compile("^\\d{18}$"); + + /** + * Binds an username or an UID to an actual {@code IUser}. + * The following username input formats are allowed: + *