diff --git a/src/main/java/org/telegram/telegrambots/api/commands/BotCommand.java b/src/main/java/org/telegram/telegrambots/api/commands/BotCommand.java index 63ad7ee0..68222543 100644 --- a/src/main/java/org/telegram/telegrambots/api/commands/BotCommand.java +++ b/src/main/java/org/telegram/telegrambots/api/commands/BotCommand.java @@ -8,7 +8,7 @@ import org.telegram.telegrambots.bots.AbsSender; * * @author tschulz */ -public abstract class BotCommand extends AbsSender { +public abstract class BotCommand { public final static String COMMAND_INIT_CHARACTER = "/"; public final static String COMMAND_PARAMETER_SEPARATOR = " "; @@ -16,7 +16,7 @@ public abstract class BotCommand extends AbsSender { private final String commandIdentifier; private final String description; - private final String botToken; + private AbsSender absSender; /** * construct a command @@ -24,7 +24,7 @@ public abstract class BotCommand extends AbsSender { * @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 BotCommand(String commandIdentifier, String description, String botToken) { + public BotCommand(String commandIdentifier, String description) { if (commandIdentifier == null || commandIdentifier.isEmpty()) { throw new IllegalArgumentException("commandIdentifier for command cannot be null or empty"); @@ -40,7 +40,6 @@ public abstract class BotCommand extends AbsSender { this.commandIdentifier = commandIdentifier.toLowerCase(); this.description = description; - this.botToken = botToken; } /** @@ -61,9 +60,20 @@ public abstract class BotCommand extends AbsSender { return description; } - @Override - public final String getBotToken() { - return botToken; + /** + * Setter + * @param absSender set AbsSender + */ + public final void setAbsSender(AbsSender absSender) { + this.absSender = absSender; + } + + /** + * Getter + * @return the absSender + */ + protected final AbsSender getAbsSender() { + return absSender; } /** diff --git a/src/main/java/org/telegram/telegrambots/api/commands/HelpBotCommand.java b/src/main/java/org/telegram/telegrambots/api/commands/HelpBotCommand.java index 79be1245..798ad588 100644 --- a/src/main/java/org/telegram/telegrambots/api/commands/HelpBotCommand.java +++ b/src/main/java/org/telegram/telegrambots/api/commands/HelpBotCommand.java @@ -16,7 +16,7 @@ public class HelpBotCommand extends BotCommand { private final ICommandRegistry commandRegistry; public HelpBotCommand(ICommandRegistry commandRegistry, String botToken) { - super("help", "Gives an overview over all Commands registered for this bot", botToken); + super("help", "Gives an overview over all Commands registered for this bot"); this.commandRegistry = commandRegistry; } @@ -25,12 +25,12 @@ public class HelpBotCommand extends BotCommand { for (BotCommand registeredBotCommand : commandRegistry.getRegisteredCommands()) { SendMessage sendMessage = new SendMessage(); - sendMessage.setChatId(chat.getId()); + sendMessage.setChatId(chat.getId().toString()); sendMessage.enableHtml(true); sendMessage.setText("" + COMMAND_INIT_CHARACTER + registeredBotCommand.getCommandIdentifier() + "\n" + registeredBotCommand.getDescription()); try { - sendMessage(sendMessage); + getAbsSender().sendMessage(sendMessage); } catch (TelegramApiException e) { BotLogger.error("Failed to send HelpMessage", LOGTAG, e); } diff --git a/src/main/java/org/telegram/telegrambots/bots/TelegramLongPollingBot.java b/src/main/java/org/telegram/telegrambots/bots/TelegramLongPollingBot.java index 5fae139c..241259a2 100644 --- a/src/main/java/org/telegram/telegrambots/bots/TelegramLongPollingBot.java +++ b/src/main/java/org/telegram/telegrambots/bots/TelegramLongPollingBot.java @@ -50,21 +50,29 @@ public abstract class TelegramLongPollingBot extends AbsSender implements ITeleg @Override public final boolean register(BotCommand botCommand) { + botCommand.setAbsSender(this); return commandRegistry.register(botCommand); } @Override public final Map registerAll(BotCommand... botCommands) { + for (BotCommand botCommand : botCommands) { + botCommand.setAbsSender(this); + } return commandRegistry.registerAll(botCommands); } @Override public final boolean deregister(BotCommand botCommand) { + botCommand.setAbsSender(null); return commandRegistry.deregister(botCommand); } @Override public final Map deregisterAll(BotCommand... botCommands) { + for (BotCommand botCommand : botCommands) { + botCommand.setAbsSender(null); + } return commandRegistry.deregisterAll(botCommands); }