Package org.telegram.abilitybots.api.bot
Class BaseAbilityBot
java.lang.Object
org.telegram.telegrambots.meta.bots.AbsSender
org.telegram.telegrambots.bots.DefaultAbsSender
org.telegram.abilitybots.api.bot.BaseAbilityBot
- All Implemented Interfaces:
AbilityExtension
- Direct Known Subclasses:
AbilityBot,AbilityWebhookBot
The father of all ability bots. Bots that need to utilize abilities need to extend this bot.
It's important to note that this bot strictly extends DefaultAbsSender.
All bots extending the BaseAbilityBot get implicit abilities:
- /claim - Claims this bot
- Sets the user as the
Privacy.CREATORof the bot - Only the user with the ID returned by
creatorId()can genuinely claim the bot - /report - reports all user-defined commands (abilities)
- The same format acceptable by BotFather
- /commands - returns a list of all possible bot commands based on the privacy of the requesting user
- /backup - returns a backup of the bot database
- /recover - recovers the database
- /promote
@username- promotes user to bot admin - /demote
@username- demotes bot admin to user - /ban
@username- bans the user from accessing your bot commands and features - /unban
@username- lifts the ban from the user
Additional information of the implicit abilities are present in the methods that declare them.
The two most important handles in the BaseAbilityBot are the DBContext db and the MessageSender sender.
All bots extending BaseAbilityBot can use both handles in their update consumers.
- Author:
- Abbas Abou Daya
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringstatic final Stringprotected final DBContextprotected static final Stringprotected MessageSenderprotected SilentSenderstatic final Stringstatic final Stringstatic final StringFields inherited from class org.telegram.telegrambots.bots.DefaultAbsSender
exe -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedBaseAbilityBot(String botToken, String botUsername, DBContext db, AbilityToggle toggle, DefaultBotOptions botOptions) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddExtension(AbilityExtension extension) protected voidaddExtensions(Collection<AbilityExtension> extensions) protected voidaddExtensions(AbilityExtension... extensions) admins()protected booleanprotected booleancheckGlobalFlags(org.telegram.telegrambots.meta.api.objects.Update update) Test the update against the provided global flags.abstract longdb()protected Stringprotected StringgetPrivacy(org.telegram.telegrambots.meta.api.objects.Update update, long id) booleanisAdmin(long id) booleanisCreator(long id) booleanisGroupAdmin(long chatId, long id) booleanisGroupAdmin(org.telegram.telegrambots.meta.api.objects.Update update, long id) voidvoidonUpdateReceived(org.telegram.telegrambots.meta.api.objects.Update update) This method contains the stream of actions that are applied on any update.replies()sender()silent()stats()userIds()users()Methods inherited from class org.telegram.telegrambots.bots.DefaultAbsSender
downloadFile, downloadFile, downloadFile, downloadFile, downloadFileAsStream, downloadFileAsStream, downloadFileAsync, downloadFileAsync, execute, execute, execute, execute, execute, execute, execute, execute, execute, execute, execute, execute, execute, execute, execute, executeAsync, executeAsync, executeAsync, executeAsync, executeAsync, executeAsync, executeAsync, executeAsync, executeAsync, executeAsync, executeAsync, executeAsync, executeAsync, executeAsync, executeAsync, getBaseUrl, getBotToken, getOptions, sendApiMethod, sendApiMethodAsync, sendApiMethodAsyncMethods inherited from class org.telegram.telegrambots.meta.bots.AbsSender
execute, executeAsync, executeAsync, getMe, getMeAsync, getMeAsync, getWebhookInfo, getWebhookInfoAsync, getWebhookInfoAsync
-
Field Details
-
DEFAULT
- See Also:
-
ADMINS
- See Also:
-
USERS
- See Also:
-
USER_ID
- See Also:
-
BLACKLIST
- See Also:
-
STATS
- See Also:
-
db
-
sender
-
silent
-
-
Constructor Details
-
BaseAbilityBot
protected BaseAbilityBot(String botToken, String botUsername, DBContext db, AbilityToggle toggle, DefaultBotOptions botOptions)
-
-
Method Details
-
creatorId
public abstract long creatorId() -
onRegister
public void onRegister() -
db
- Returns:
- the database of this bot
-
sender
- Returns:
- the message sender for this bot
-
silent
- Returns:
- the silent sender for this bot
-
users
- Returns:
- the map of <ID,User>
-
userIds
- Returns:
- the map of <Username,ID>
-
blacklist
- Returns:
- a blacklist containing all the IDs of the banned users
-
admins
- Returns:
- an admin set of all the IDs of bot administrators
-
stats
- Returns:
- a mapping of ability and reply names to their corresponding statistics
-
abilities
- Returns:
- the immutable map of <String,Ability>
-
replies
- Returns:
- the immutable list carrying the embedded replies
-
onUpdateReceived
public void onUpdateReceived(org.telegram.telegrambots.meta.api.objects.Update update) This method contains the stream of actions that are applied on any update.It will correctly handle addition of users into the DB and the execution of abilities and replies.
- Parameters:
update- the update received by Telegram's API
-
getBotUsername
-
getPrivacy
-
isGroupAdmin
public boolean isGroupAdmin(org.telegram.telegrambots.meta.api.objects.Update update, long id) -
isGroupAdmin
public boolean isGroupAdmin(long chatId, long id) -
isCreator
public boolean isCreator(long id) -
isAdmin
public boolean isAdmin(long id) -
checkGlobalFlags
protected boolean checkGlobalFlags(org.telegram.telegrambots.meta.api.objects.Update update) Test the update against the provided global flags. The default implementation is a passthrough to all updates.This method should be overridden if the user wants to restrict bot usage to only certain updates.
- Parameters:
update- a TelegramUpdate- Returns:
- true if the update satisfies the global flags
-
getCommandPrefix
-
getCommandRegexSplit
-
allowContinuousText
protected boolean allowContinuousText() -
addExtension
-
addExtensions
-
addExtensions
-