From 30fa92cd8b09792d4cc1f1ed98d6061de698a8ee Mon Sep 17 00:00:00 2001 From: Grig Alex Date: Tue, 20 Oct 2020 20:41:34 +0300 Subject: [PATCH] Replace botUsername with botUsernameSupplier --- .../commandbot/TelegramLongPollingCommandBot.java | 2 +- .../bots/commandbot/commands/CommandRegistry.java | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/telegrambots-extensions/src/main/java/org/telegram/telegrambots/extensions/bots/commandbot/TelegramLongPollingCommandBot.java b/telegrambots-extensions/src/main/java/org/telegram/telegrambots/extensions/bots/commandbot/TelegramLongPollingCommandBot.java index 05de2c72..24aadaf0 100644 --- a/telegrambots-extensions/src/main/java/org/telegram/telegrambots/extensions/bots/commandbot/TelegramLongPollingCommandBot.java +++ b/telegrambots-extensions/src/main/java/org/telegram/telegrambots/extensions/bots/commandbot/TelegramLongPollingCommandBot.java @@ -53,7 +53,7 @@ public abstract class TelegramLongPollingCommandBot extends TelegramLongPollingB */ public TelegramLongPollingCommandBot(DefaultBotOptions options, boolean allowCommandsWithUsername) { super(options); - this.commandRegistry = new CommandRegistry(allowCommandsWithUsername, this.getBotUsername()); + this.commandRegistry = new CommandRegistry(allowCommandsWithUsername, this::getBotUsername); } @Override diff --git a/telegrambots-extensions/src/main/java/org/telegram/telegrambots/extensions/bots/commandbot/commands/CommandRegistry.java b/telegrambots-extensions/src/main/java/org/telegram/telegrambots/extensions/bots/commandbot/commands/CommandRegistry.java index f06e15fb..8277503d 100644 --- a/telegrambots-extensions/src/main/java/org/telegram/telegrambots/extensions/bots/commandbot/commands/CommandRegistry.java +++ b/telegrambots-extensions/src/main/java/org/telegram/telegrambots/extensions/bots/commandbot/commands/CommandRegistry.java @@ -7,7 +7,9 @@ import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.Map; +import java.util.Objects; import java.util.function.BiConsumer; +import java.util.function.Supplier; import java.util.regex.Pattern; /** @@ -19,17 +21,17 @@ public final class CommandRegistry implements ICommandRegistry { private final Map commandRegistryMap = new HashMap<>(); private final boolean allowCommandsWithUsername; - private final String botUsername; + private final Supplier botUsernameSupplier; private BiConsumer defaultConsumer; /** * Creates a Command registry * @param allowCommandsWithUsername True to allow commands with username, false otherwise - * @param botUsername Bot username + * @param botUsernameSupplier Bot username supplier */ - public CommandRegistry(boolean allowCommandsWithUsername, String botUsername) { + public CommandRegistry(boolean allowCommandsWithUsername, Supplier botUsernameSupplier) { this.allowCommandsWithUsername = allowCommandsWithUsername; - this.botUsername = botUsername; + this.botUsernameSupplier = botUsernameSupplier; } @Override @@ -123,6 +125,7 @@ public final class CommandRegistry implements ICommandRegistry { */ private String removeUsernameFromCommandIfNeeded(String command) { if (allowCommandsWithUsername) { + String botUsername = Objects.requireNonNull(botUsernameSupplier.get(), "Bot username must not be null"); return command.replaceAll("(?i)@" + Pattern.quote(botUsername), "").trim(); } return command;