From d395e507693570cb279f587f994e4e9eabdce2a4 Mon Sep 17 00:00:00 2001 From: La123123 <617330105@qq.com> Date: Mon, 16 Mar 2026 17:21:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=85=E8=81=94=E9=94=AE=E7=9B=98=E4=BA=A4?= =?UTF-8?q?=E4=BA=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../telegram/commands/KeyboardCommand.java | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 src/main/java/org/telegram/commands/KeyboardCommand.java diff --git a/src/main/java/org/telegram/commands/KeyboardCommand.java b/src/main/java/org/telegram/commands/KeyboardCommand.java new file mode 100644 index 0000000..f9ffe70 --- /dev/null +++ b/src/main/java/org/telegram/commands/KeyboardCommand.java @@ -0,0 +1,76 @@ +package org.telegram.commands; + +import org.telegram.database.DatabaseManager; +import org.telegram.telegrambots.extensions.bots.commandbot.commands.BotCommand; +import org.telegram.telegrambots.meta.api.methods.send.SendMessage; +import org.telegram.telegrambots.meta.api.objects.Chat; +import org.telegram.telegrambots.meta.api.objects.User; +import org.telegram.telegrambots.meta.api.objects.replykeyboard.InlineKeyboardMarkup; +import org.telegram.telegrambots.meta.api.objects.replykeyboard.buttons.InlineKeyboardButton; +import org.telegram.telegrambots.meta.api.objects.replykeyboard.buttons.InlineKeyboardRow; +import org.telegram.telegrambots.meta.exceptions.TelegramApiException; +import org.telegram.telegrambots.meta.generics.TelegramClient; + +import java.util.ArrayList; +import java.util.List; + +/** + * This command shows a keyboard with two options: + * 1. Show an image + * 2. Trigger success message + * + * @author Your Name + */ +public class KeyboardCommand extends BotCommand { + + public static final String LOGTAG = "KEYBOARDCOMMAND"; + public static final String IMAGE_URL = "https://globecoin.s3.ap-southeast-1.amazonaws.com/echo2/uploads/2025-03-05/381300c82a6a4ba1b48800e292ca150c.jpg"; + + public KeyboardCommand() { + super("keyboard", "Show interactive keyboard with options"); + } + + @Override + public void execute(TelegramClient telegramClient, User user, Chat chat, String[] arguments) { + + if (!DatabaseManager.getInstance().getUserStateForCommandsBot(user.getId())) { + return; + } + + String userName = user.getFirstName() + " " + user.getLastName(); + + // Create inline keyboard buttons + InlineKeyboardButton showImageButton = InlineKeyboardButton.builder() + .text("🖼️ 展示图片") + .callbackData("show_image") + .build(); + + InlineKeyboardButton successButton = InlineKeyboardButton.builder() + .text("✅ 跳转成功") + .callbackData("show_success:" + userName) + .build(); + + // Create keyboard rows +// List rows = new ArrayList<>(); +// rows.add(new InlineKeyboardRow(showImageButton)); +// rows.add(new InlineKeyboardRow(successButton)); + + // Create keyboard rows - 两个按钮在同一行 + List rows = new ArrayList<>(); + InlineKeyboardRow row = new InlineKeyboardRow(showImageButton, successButton); + rows.add(row); + + // Create the message with inline keyboard + SendMessage message = new SendMessage(chat.getId().toString(), + "请选择一个选项:\n\n1. 展示图片\n2. 查看成功信息"); + InlineKeyboardMarkup keyboardMarkup = new InlineKeyboardMarkup(rows); + message.setReplyMarkup(keyboardMarkup); + + try { + telegramClient.execute(message); + } catch (TelegramApiException e) { +// log.error("Error", e); + System.out.println(e); + } + } +}