telegram bot на java. Проблема с обработкой кнопок внутри кнопок

Начал изучать java. Решил начать с проектов попроще, поэтому мой выбор пал на тг ботов. Проблема такая: есть основное меню с основными кнопками. Как правило,при нажатии на кнопку бот выполняет какое то действие и снова устанавливает основные кнопки. Но есть кнопка ИГРА. По задумке пользователь на неё нажимает и устанавливается внутренняя клавиатура со своим обработчиком. Но проблема в том,что при нажатии на основную кнопку "игра",в message сохраняется как раз таки это слово,что делает невозможным адекватно обработать внутренние кнопки. Ведь код входит в обработчик внутренних кнопок именно с этим значением, пролетает case,не находит совпадений и снова возвращается к обработчику основных кнопок. Подскажите,пожалуйста, как сделать,чтоб при нажатии на основную кнопку "игра" код оставался в обработчике внутренних кнопок,принимал и передавал новый message до тех пор,пока не нажать на внутреннюю кнопку "выход"? Спасибо!

ОСНОВНЫЕ КНОПКИ

public void onUpdateReceived(@NotNull Update update) {

        Message message = update.getMessage();

        if(message != null && message.hasText()){
            switch (message.getText()){

                case "КАРТИНКА":
                    sendPhoto(message, new InputFile(randomPicture())));
                    break;

                case "ЧАТ":
                    sendMsg(message, chat(message));
                    break;

                case "ИГРА":
                    sendMsgPlay(message, "камень ножницы бумага");
                    playUpdateReceived(message);
                    break;

ВНУТРЕННЯЯ КЛАВИАТУРА ДЛЯ ИГРЫ

 public void setGameButtons(SendMessage sendMessage){

        ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup();
        sendMessage.setReplyMarkup(replyKeyboardMarkup);
        replyKeyboardMarkup.setSelective(true);
        replyKeyboardMarkup.getResizeKeyboard();
        replyKeyboardMarkup.setOneTimeKeyboard(false);

        List<KeyboardRow> keyboardRowList = new ArrayList<>();
        KeyboardRow keyboardFirstRow = new KeyboardRow();
        KeyboardRow keyboardSecondRow = new KeyboardRow();

        keyboardFirstRow.add(new KeyboardButton("\uD83D\uDC8E"));
        keyboardFirstRow.add(new KeyboardButton("✂️"));
        keyboardFirstRow.add(new KeyboardButton("\uD83D\uDCDC"));
        keyboardSecondRow.add(new KeyboardButton("ВЫЙТИ"));

        keyboardRowList.add(keyboardFirstRow);
        keyboardRowList.add(keyboardSecondRow);

        replyKeyboardMarkup.setKeyboard(keyboardRowList);

    }

ПРИКРЕПЛЯЕМ ЭТИ КНОПКИ К СООБЩЕНИЮ

public void sendMsgPlay(Message message, String text){
        SendMessage sendMessage = new SendMessage();
        sendMessage.enableMarkdown(true);
        sendMessage.setChatId(message.getChatId().toString());
        sendMessage.setText(text);

        try{
            setGameButtons(sendMessage);
            execute(sendMessage);
        }
        catch (TelegramApiException e){
            e.printStackTrace();
        }
    }

ОБРАБОТЧИК ВНУТРЕННИХ КНОПОК ДЛЯ ИГРЫ

 public void playUpdateReceived(Message message) {

        if(message!=null && message.hasText()) {

            switch (message.getText()) {
                case "\uD83D\uDC8E":

                case "\uD83D\uDCDC":

                case "✂️":
                    try {
                        execute(SendMessage.builder().chatId(message.getChatId()).text(randomSticker()).build());
                    } catch (TelegramApiException e) {
                        e.printStackTrace();
                    }
                    //здесь должен быть обработчик правил игры(выиграл, проиграл либо ничья)
                    break;


                case "ВЫХОД":
                    sendMsg(message, "Выбери кнопку!");
                default:
                    sendMsgPlay(message, "выбери кнопку!");
            }
        }

Ответы (0 шт):