Annotation Interface ChatJoinRequestHandler


@Retention(RUNTIME) @Target(METHOD) @Repeatable(ChatJoinRequestHandlers.class) public @interface ChatJoinRequestHandler
Annotation for handling chat join request events in a declarative manner. Designed specifically for handling events when a user requests to join a chat (typically a private group or channel that requires approval).

Basic join request handler example:


 @ChatJoinRequestHandler
 void handleJoinRequest(BotContext context, ChatJoinRequest request) {
     // Handle chat join request event
     context.approveJoinRequest(request.chat.id, request.from.id));
 }
 

Custom filtered join request handler example:


 @ChatJoinRequestHandler(filter = PremiumUserFilter.class)
 void handlePremiumJoinRequest(BotContext context, ChatJoinRequest request) {
     // Automatically approve join requests from premium users
     context.approveJoinRequest(request.chat.id, request.from.id));
 }
 

Multiple join request handlers with priorities:


 @ChatJoinRequestHandler(priority = -1, filter = PremiumUserFilter.class)
 void validateJoinRequest(BotContext context, ChatJoinRequest request) {
     // Automatically approve join requests from premium users
     context.approveJoinRequest(request.chat.id, request.from.id));
 }

 @ChatJoinRequestHandler
 void welcomeApprovedUser(BotContext context, ChatJoinRequest request) {
     // This handler executes for approved requests
     context.approveJoinRequest(request.chat.id, request.from.id));
 }
 


Equivalent with using BotClient.onChatJoinRequest(FilterExecutor, UpdateHandler)
Since:
1.2.0
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    Class<? extends CustomFilter>
    Custom filter class for advanced filtering of chat join request events.
    int
    Priority order for handler registration and execution.
  • Element Details

    • filter

      Class<? extends CustomFilter> filter
      Custom filter class for advanced filtering of chat join request events. Use this to implement custom logic for determining which join requests should trigger this handler, such as filtering by user profile, join date, referral source, or other application-specific criteria.
      Returns:
      class implementing CustomFilter interface
      Default:
      io.github.natanimn.telebof.filters.DefaultCustomFilter.class
    • priority

      int priority
      Priority order for handler registration and execution. Handlers with lower priority numbers are registered and executed before those with higher numbers. This allows controlling the order of handler processing when multiple handlers could match the same join request event.
      Returns:
      priority integer value (lower = earlier execution)
      Default:
      0