Modify TelegramLongPollingBot to support commands
This commit is contained in:
parent
92aa4e218e
commit
f49cb8b62f
@ -1,11 +1,77 @@
|
|||||||
package org.telegram.telegrambots.bots;
|
package org.telegram.telegrambots.bots;
|
||||||
|
|
||||||
|
import org.telegram.telegrambots.BotLogger;
|
||||||
|
import org.telegram.telegrambots.TelegramApiException;
|
||||||
|
import org.telegram.telegrambots.api.commands.Command;
|
||||||
|
import org.telegram.telegrambots.api.commands.CommandRegistry;
|
||||||
|
import org.telegram.telegrambots.api.commands.ICommandRegistery;
|
||||||
|
import org.telegram.telegrambots.api.methods.send.SendMessage;
|
||||||
|
import org.telegram.telegrambots.api.objects.Message;
|
||||||
|
import org.telegram.telegrambots.api.objects.Update;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Ruben Bermudez
|
* @author Ruben Bermudez
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
* @brief TODO
|
* @brief TODO
|
||||||
* @date 14 of January of 2016
|
* @date 14 of January of 2016
|
||||||
*/
|
*/
|
||||||
public abstract class TelegramLongPollingBot extends AbsSender implements ITelegramLongPollingBot {
|
public abstract class TelegramLongPollingBot extends AbsSender implements ITelegramLongPollingBot, ICommandRegistery {
|
||||||
|
|
||||||
}
|
public static final String LOGTAG = "TelegramLongPollingBot";
|
||||||
|
private final CommandRegistry commandRegistry;
|
||||||
|
|
||||||
|
public TelegramLongPollingBot() {
|
||||||
|
this.commandRegistry = new CommandRegistry(getBotToken());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final void onUpdateReceived(Update update) {
|
||||||
|
if (update.hasMessage()) {
|
||||||
|
Message message = update.getMessage();
|
||||||
|
if (message.isCommand()) {
|
||||||
|
if (!commandRegistry.executeCommand(message)) {
|
||||||
|
SendMessage sendMessage = new SendMessage();
|
||||||
|
sendMessage.setChatId(message.getChatId());
|
||||||
|
sendMessage.setText("The command you provided is not registered for this bot");
|
||||||
|
try {
|
||||||
|
sendMessage(sendMessage);
|
||||||
|
} catch (TelegramApiException e) {
|
||||||
|
BotLogger.error("Cannot send message", LOGTAG, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
processNonCommandUpdate(update);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final boolean register(Command command) {
|
||||||
|
return commandRegistry.register(command);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final Map<Command, Boolean> registerAll(Command... commands) {
|
||||||
|
return commandRegistry.registerAll(commands);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final boolean deregister(Command command) {
|
||||||
|
return commandRegistry.deregister(command);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final Map<Command, Boolean> deregisterAll(Command... commands) {
|
||||||
|
return commandRegistry.deregisterAll(commands);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public final Collection<Command> getRegisteredCommands() {
|
||||||
|
return commandRegistry.getRegisteredCommands();
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract void processNonCommandUpdate(Update update);
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user