1 changed files with 76 additions and 0 deletions
@ -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<InlineKeyboardRow> rows = new ArrayList<>();
|
|||
// rows.add(new InlineKeyboardRow(showImageButton));
|
|||
// rows.add(new InlineKeyboardRow(successButton));
|
|||
|
|||
// Create keyboard rows - 两个按钮在同一行
|
|||
List<InlineKeyboardRow> 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); |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue