Merge pull request #330 from vadimgoroshevsky/dev
Add DefaultBotCommand, with message ID in execute method
This commit is contained in:
commit
135602b5b7
@ -1,6 +1,7 @@
|
|||||||
package org.telegram.telegrambots.bots.commandbot.commands;
|
package org.telegram.telegrambots.bots.commandbot.commands;
|
||||||
|
|
||||||
import org.telegram.telegrambots.api.objects.Chat;
|
import org.telegram.telegrambots.api.objects.Chat;
|
||||||
|
import org.telegram.telegrambots.api.objects.Message;
|
||||||
import org.telegram.telegrambots.api.objects.User;
|
import org.telegram.telegrambots.api.objects.User;
|
||||||
import org.telegram.telegrambots.bots.AbsSender;
|
import org.telegram.telegrambots.bots.AbsSender;
|
||||||
|
|
||||||
@ -66,6 +67,17 @@ public abstract class BotCommand {
|
|||||||
"</b>\n" + getDescription();
|
"</b>\n" + getDescription();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Process the message and execute the command
|
||||||
|
*
|
||||||
|
* @param absSender absSender to send messages over
|
||||||
|
* @param message the message to process
|
||||||
|
* @param arguments passed arguments
|
||||||
|
*/
|
||||||
|
void processMessage(AbsSender absSender, Message message, String[] arguments) {
|
||||||
|
execute(absSender, message.getFrom(), message.getChat(), arguments);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Execute the command
|
* Execute the command
|
||||||
*
|
*
|
||||||
|
@ -103,7 +103,7 @@ public final class CommandRegistry implements ICommandRegistry {
|
|||||||
|
|
||||||
if (commandRegistryMap.containsKey(command)) {
|
if (commandRegistryMap.containsKey(command)) {
|
||||||
String[] parameters = Arrays.copyOfRange(commandSplit, 1, commandSplit.length);
|
String[] parameters = Arrays.copyOfRange(commandSplit, 1, commandSplit.length);
|
||||||
commandRegistryMap.get(command).execute(absSender, message.getFrom(), message.getChat(), parameters);
|
commandRegistryMap.get(command).processMessage(absSender, message, parameters);
|
||||||
return true;
|
return true;
|
||||||
} else if (defaultConsumer != null) {
|
} else if (defaultConsumer != null) {
|
||||||
defaultConsumer.accept(absSender, message);
|
defaultConsumer.accept(absSender, message);
|
||||||
|
@ -0,0 +1,53 @@
|
|||||||
|
package org.telegram.telegrambots.bots.commandbot.commands;
|
||||||
|
|
||||||
|
import org.telegram.telegrambots.api.objects.Chat;
|
||||||
|
import org.telegram.telegrambots.api.objects.Message;
|
||||||
|
import org.telegram.telegrambots.api.objects.User;
|
||||||
|
import org.telegram.telegrambots.bots.AbsSender;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Bot command with message ID in execute method
|
||||||
|
*
|
||||||
|
* @author Vadim Goroshevsky (@vadimgoroshevsky)
|
||||||
|
*/
|
||||||
|
public abstract class DefaultBotCommand extends BotCommand {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Construct a command
|
||||||
|
*
|
||||||
|
* @param commandIdentifier the unique identifier of this command (e.g. the command string to
|
||||||
|
* enter into chat)
|
||||||
|
* @param description the description of this command
|
||||||
|
*/
|
||||||
|
public DefaultBotCommand(String commandIdentifier, String description) {
|
||||||
|
super(commandIdentifier, description);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Process the message and execute the command
|
||||||
|
*
|
||||||
|
* @param absSender absSender to send messages over
|
||||||
|
* @param message the message to process
|
||||||
|
* @param arguments passed arguments
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
void processMessage(AbsSender absSender, Message message, String[] arguments) {
|
||||||
|
execute(absSender, message.getFrom(), message.getChat(), message.getMessageId(), arguments);
|
||||||
|
}
|
||||||
|
|
||||||
|
// We'll override this method here for not repeating it in DefaultBotCommand's children
|
||||||
|
@Override
|
||||||
|
public final void execute(AbsSender absSender, User user, Chat chat, String[] arguments) {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Execute the command
|
||||||
|
*
|
||||||
|
* @param absSender absSender to send messages over
|
||||||
|
* @param user the user who sent the command
|
||||||
|
* @param chat the chat, to be able to send replies
|
||||||
|
* @param messageId message id for interaction
|
||||||
|
* @param arguments passed arguments
|
||||||
|
*/
|
||||||
|
public abstract void execute(AbsSender absSender, User user, Chat chat, Integer messageId, String[] arguments);
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user