diff options
author | Anatoliy Sablin | 2017-11-05 10:33:34 +0300 |
---|---|---|
committer | Anatoliy Sablin | 2017-11-06 15:00:22 +0300 |
commit | ce0ed9ac9e82b19763b7dfd4814d327e0b49ddb7 (patch) | |
tree | 4e63b5a35e162956b548d9415fa8f2c6d38b8e3b /juick-commands/src/main/java/com/juick/command/MultiArgsCommand.java | |
parent | 83815d291a7945c26a675c8543e8766ad2d1beda (diff) |
juick-commands
Diffstat (limited to 'juick-commands/src/main/java/com/juick/command/MultiArgsCommand.java')
-rw-r--r-- | juick-commands/src/main/java/com/juick/command/MultiArgsCommand.java | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/juick-commands/src/main/java/com/juick/command/MultiArgsCommand.java b/juick-commands/src/main/java/com/juick/command/MultiArgsCommand.java new file mode 100644 index 00000000..5fde6775 --- /dev/null +++ b/juick-commands/src/main/java/com/juick/command/MultiArgsCommand.java @@ -0,0 +1,24 @@ +package com.juick.command; + +import com.juick.User; +import com.juick.server.protocol.ProtocolListener; + +import java.util.regex.Matcher; + +/** + * @author ma1uta + */ +public abstract class MultiArgsCommand implements Command { + + @Override + public String execute(User sender, ProtocolListener protocolListener, String command) { + Matcher matcher = pattern().matcher(command.trim()); + String[] arguments = new String[matcher.groupCount()]; + for (int i = 1; i <= matcher.groupCount(); i++) { + arguments[i - 1] = (matcher.group(i)); + } + return execute(sender, protocolListener, arguments); + } + + protected abstract String execute(User sender, ProtocolListener protocolListener, String... arguments); +} |