/** * Checks the given message. * * @param message the message to check * @return a MessageChecker to proceed with the DSL */ public static MessageChecker check(IncomeMessage message) { return new MessageChecker(message); }
@Override public void orElse(Consumer<String> action) { this.defaultAction = action; execute(); }
@Override public void process(IncomeMessage message) { message.command().as(WeatherCommand.class).search() .and(weather -> message.reply(buildResponse(weather))) .orElseThrow(() -> new MessageProcessingException("No weather forecast found")); }
@Override public void process(IncomeMessage message) { message.command().as(LookupCommand.class) .lookup() .and(message::reply) .orElseThrow(() -> new MessageProcessingException("Definition not found")); }
@Override public String create(Verifiable object, String type, String description) { String token = this.repository.create(object, type); messageSender.send(message("To confirm '[aa]" + description + "[/aa]' use the token '[a]" + token + "[/a]'.\n" + "If you didn't request this, just ignore this message.") .withTitle("Please confirm your request")) .to(object.tokenDestination()); return token; }
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() ); } }
/** * Formats the message using the given format and arguments and then * uses the produced content as the {@link #sendBack(String) reply to sender}. * * @param format the format of the message * @param args the arguments to format the message */ default void sendBack(String format, Object... args) { sendBack(String.format(format, args)); }
public boolean isLowPriority() { return priority() == Priority.LOW; }
@Override public List<String> asList() { return as(List.class); }
@Override public <T> T as(Class<T> type) { return convert(rawArguments, type); }
@Override public boolean canProcess(IncomeMessage message) { return message.isGroup(); }
@Override public boolean canProcess(IncomeMessage message) { return message.isPrivate(); }
@Override public MessageCommand on(String actionName, Consumer<String> action) { return on(actionName, String.class, action); }
public static MessageBuilder message(String content) { return new MessageBuilder(content); }
public boolean isHighPriority() { return priority() == Priority.HIGH; }