Есть ли возможность хэндлить является ли юзер подписанным на телеграм бота?

Да, в Java есть возможность проверить, является ли пользователь подписанным на Telegram бота. Для этого можно использовать Telegram Bot API. Этот API предоставляет различные методы и функции для работы с ботами в Telegram.

Для начала необходимо создать бота в Telegram. Для этого нужно обратиться к официальной документации Telegram, в которой описаны все шаги создания бота, включая получение токена доступа.

После создания бота и получения токена доступа, вы можете использовать его для отправки запросов к Telegram Bot API. Один из методов, которые вы можете использовать, называется getChatMember. Этот метод позволяет получить информацию о пользователе в чате, включая статус подписки.

Пример использования метода getChatMember в Java:

import org.telegram.telegrambots.*;
import org.telegram.telegrambots.meta.api.methods.GetUserProfilePhotos;
import org.telegram.telegrambots.meta.api.methods.groupadministration.GetChatMember;
import org.telegram.telegrambots.meta.api.objects.User;
import org.telegram.telegrambots.meta.exceptions.TelegramApiException;

public class Main {
    public static void main(String[] args) {
        TelegramBotsApi telegramBotsApi = new TelegramBotsApi();

        try {
            telegramBotsApi.registerBot(new MyBot());
        } catch (TelegramApiException e) {
            e.printStackTrace();
        }
    }
}

public class MyBot extends TelegramLongPollingBot {
    @Override
    public void onUpdateReceived(Update update) {
        if (update.hasMessage() && update.getMessage().hasText()) {
            String chatId = update.getMessage().getChatId().toString();
            String userId = update.getMessage().getFrom().getId().toString();

            GetChatMember getChatMember = new GetChatMember(chatId, userId);

            try {
                ChatMember chatMember = execute(getChatMember);
                boolean isSubscriber = chatMember.getStatus().equals("member") || chatMember.getStatus().equals("administrator");

                if (isSubscriber) {
                    System.out.println("Пользователь является подписчиком");
                } else {
                    System.out.println("Пользователь не является подписчиком");
                }
            } catch (TelegramApiException e) {
                e.printStackTrace();
            }
        }
    }

    @Override
    public String getBotUsername() {
        return "your_bot_username";
    }

    @Override
    public String getBotToken() {
        return "your_bot_token";
    }
}

В этом примере мы создаем Telegram бота и регистрируем его с помощью TelegramBotsApi. Затем мы переопределяем метод onUpdateReceived для обработки входящих сообщений от пользователей. Внутри метода, мы извлекаем информацию о пользователе, включая идентификатор чата и идентификатор пользователя.

Затем мы создаем объект GetChatMember, указывая идентификатор чата и идентификатор пользователя. После этого, мы выполняем запрос execute к Telegram API, чтобы получить информацию о пользователе в чате.

Далее, мы проверяем статус пользователя, который можно получить из объекта ChatMember. Если статус пользователя равен "member" или "administrator", то мы считаем его подписанным на бота.

В зависимости от результата проверки, мы выводим сообщение в консоль.

Важно отметить, что для работы этого примера вы должны подключить библиотеку TelegramBots для Java. Вы можете сделать это, добавив следующую зависимость в файл pom.xml вашего проекта:

<dependency>
    <groupId>org.telegram</groupId>
    <artifactId>telegrambots</artifactId>
    <version>4.2</version>
</dependency>

Также не забудьте заменить "your_bot_username" и "your_bot_token" на реальные значения вашего бота.

Надеюсь, эта информация поможет вам определить, является ли пользователь подписанным на Telegram бота с использованием Java.