@Override public List<String> asList() { return as(List.class); }
@Override public MessageCommand on(String actionName, Class<? extends Action> actionClass) { this.actions.put(actionName, () -> convert(resolveParameterString(rawArguments), actionClass)); return this; }
@Override public void orElse(Consumer<String> action) { this.defaultAction = action; execute(); }
public MessageCommand extract(IncomeMessage message) { StringBuilder command = new StringBuilder(message.content()); int firstSpace = command.indexOf(" "); if (firstSpace < 0) { // no arguments return new ExtractedCommand(message, command.toString(), ""); } else { return new ExtractedCommand(message, command.substring(0, firstSpace), command.substring(firstSpace, command.length()).trim() ); } }
@Override public <T> T as(Class<T> type) { return convert(rawArguments, type); }
@Override public MessageCommand on(String actionName, Consumer<String> action) { return on(actionName, String.class, action); }
@Override public void orElseReturn(String message) { orElse((string) -> this.incomeMessage.reply(message)); }
public MessageCommand extract(IncomeMessage message) { String content = message.content(); Matcher matcher = prefix.matcher(content); if (matcher.find()) { content = content.substring(matcher.end()); } int firstSpace = content.indexOf(" "); if (firstSpace < 0) { // no arguments return new ExtractedCommand(message, content, ""); } else { return new ExtractedCommand(message, content.substring(0, firstSpace), content.substring(firstSpace, content.length()).trim() ); } }
@Override public <T> MessageCommand on(String actionName, Class<T> parameterType, Consumer<T> consumer) { this.actions.put(actionName, () -> consumer.accept(convert(resolveParameterString(rawArguments), parameterType))); return this; }
public MessageCommand extract(IncomeMessage message) { Matcher matcher = pattern.matcher(message.content()); if (matcher.find()) { String command = matcher.group("command"); String args = matcher.group("arguments"); return new ExtractedCommand(message, command, args != null ? args.trim() : ""); } else { throw new BotException(message.content() + " is not a command"); } }