package net.tylermurphy.Minecraft.Command; import net.tylermurphy.Minecraft.Command.Commands.Teleport; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.regex.Pattern; public class CommandHandler { public final static Map REGISTER = new HashMap<>(); public static void registerCommands() { register(new Teleport()); } private static void register(ICommand command) { if (!REGISTER.containsKey(command.getInvoke())) { REGISTER.put(command.getInvoke().toLowerCase(), command); } } public static void handleCommand(String text) { final String[] split = text.replaceFirst( "(?i)" + Pattern.quote("/"), "").split("\\s+"); final String invoke = split[0].toLowerCase(); if(REGISTER.containsKey(invoke)) { ICommand command = REGISTER.get(invoke); final List args = Arrays.asList(split).subList(1, split.length); command.invoke(args); } } }