aboutsummaryrefslogtreecommitdiff
path: root/juick-commands/src/main/java/com/juick/command/MultiArgsCommand.java
diff options
context:
space:
mode:
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.java24
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);
+}