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).
Equivalent with using
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 ElementsModifier and TypeOptional ElementDescriptionClass<? extends CustomFilter> Custom filter class for advanced filtering of chat join request events.intPriority order for handler registration and execution.
-
Element Details
-
filter
Class<? extends CustomFilter> filterCustom 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
CustomFilterinterface
- Default:
io.github.natanimn.telebof.filters.DefaultCustomFilter.class
-
priority
int priorityPriority 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
-