Annotation Interface ChatMemberHandler


@Retention(RUNTIME) @Target(METHOD) @Repeatable(ChatMemberHandlers.class) public @interface ChatMemberHandler
Annotation for handling chat member status updates in a declarative manner. Designed specifically for handling events when a chat member's status changes, such as when users join, leave, get promoted, demoted, or have their permissions changed.

Basic member status handler example:


 @ChatMemberHandler(status = ChatMemberStatus.MEMBER)
 void handleNewMember(BotContext context, ChatMemberUpdated update) {
     // Handle member demotion
 }
 

Multiple status handler example:


 @ChatMemberHandler(status = {ChatMemberStatus.ADMINISTRATOR, ChatMemberStatus.CREATOR})
 void handleAdminPromotion(BotContext context, ChatMemberUpdated update) {
     // Handle when a user becomes an admin or creator
     context.sendMessage(update.chat.id, "New admin privileges granted!");
 }
 
Equivalent with using BotClient.onChatMember(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 member update events.
    int
    Priority order for handler registration and execution.
    Specifies the chat member status changes to match.
  • Element Details

    • status

      Specifies the chat member status changes to match. Multiple status values are combined using OR logic - the handler will trigger if the member's new status matches any of the specified status values.
      Returns:
      array of ChatMemberStatus enum values to filter by
      Default:
      {}
    • filter

      Class<? extends CustomFilter> filter
      Custom filter class for advanced filtering of chat member update events. Use this to implement custom logic for determining which member status changes should trigger this handler, such as filtering by user roles, permission changes, chat-specific rules, 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 member status change event.
      Returns:
      priority integer value (lower = earlier execution)
      Default:
      0