Message filter for TelegramLongPollingCommandBot

This commit is contained in:
dartwata 2016-07-13 16:39:51 +08:00 committed by GitHub
parent f9ab74d407
commit 13e45139f4

View File

@ -32,7 +32,7 @@ public abstract class TelegramLongPollingCommandBot extends TelegramLongPollingB
public final void onUpdateReceived(Update update) { public final void onUpdateReceived(Update update) {
if (update.hasMessage()) { if (update.hasMessage()) {
Message message = update.getMessage(); Message message = update.getMessage();
if (message.isCommand()) { if ((message.isCommand()) && (filter(message))) {
if (commandRegistry.executeCommand(this, message)) { if (commandRegistry.executeCommand(this, message)) {
return; return;
} }
@ -41,6 +41,19 @@ public abstract class TelegramLongPollingCommandBot extends TelegramLongPollingB
processNonCommandUpdate(update); processNonCommandUpdate(update);
} }
/**
* function message filter.
* Override this function in your bot implementation to filter messages with commands
*
* For example, if you want to prevent commands execution incoming from group chat:
* #
* # return !message.getChat().isGroupChat();
* #
*/
protected boolean filter(Message message) {
return true;
}
@Override @Override
public final boolean register(BotCommand botCommand) { public final boolean register(BotCommand botCommand) {
return commandRegistry.register(botCommand); return commandRegistry.register(botCommand);