обработка ошибок библиотеки java telegram AbilityBot

#java #telegram

Вопрос:

Я использую библиотеку для своего бота: https://github.com/rubenlagus/TelegramBots/wiki/Simple-Example . Вот мой код:

     public Ability sayHi() {
        Reply replyNext = Reply.of(upd -> silent.send("Good!", getChatId(upd)), hasMessageWith("ok"));

        return Ability
                .builder()
                .name("up")
                .info("command up")
                .locality(ALL)
                .privacy(PUBLIC)
                .action(ctx -> silent.send("How are you?", ctx.chatId()))
                .reply(replyNext)
                .build();
    }
    @NotNull
    private Predicate<Update> hasMessageWith(String msg) {
        return upd -> upd.getMessage().getText().equalsIgnoreCase(msg);
    }

 

Все довольно просто:

 1 [user] /up
2 [bot] How are you?
3 [user] ok
4 [bot] Good!
 

Что, если в ответе # 3 пользователь введет что-то другое, например, «sad»? Бот должен отвечать по-другому, например, «Это нехорошо» replyNext .

Как с этим справиться?

Нужно ли мне создавать отдельный Reply.of для каждого такого случая или его можно переписать Predictate<Update> ? Мой реальный метод бота выглядит следующим образом

 for(String param:largeIncomeMessage.split("n")){
 switch (param) {
     case "param1":
       if (val.contains("thebest") amp;amp; val.contains("good")) {
         // send OK message to the user 
       } else {
         throw new NotFoundException("Error in"   incomeMessage   "'. param1");
         // send ERROR message to the user
       }
       break;
    case "param2"
       // do allmost the same
       break;
...
}