Skip to content

键盘与按钮

快捷工厂

java
import cn.org.bukkit.bngeuit.dto.message.*;

// 回调按钮:点击通知后台
Button.callback("btn1", "确认", ButtonStyle.BLUE, "/confirm");

// 跳转按钮:点击打开 URL
Button.link("btn2", "官网", ButtonStyle.GRAY, "https://qq.com");

// 指令按钮:点击自动输入 @bot 指令
Button.command("btn3", "帮助", ButtonStyle.BLUE, "帮助");

ButtonStyle

枚举值说明
BLUE蓝色(主要操作)
GRAY灰色(次要操作)
RED红色(危险操作)

完整 Builder

java
Button btn = new Button.Builder("btn_id", "按钮文字", ButtonStyle.BLUE,
        ButtonActionType.CALLBACK, "/data")
    .visitedLabel("已点击")
    .permission(Permission.specify(List.of("openid1", "openid2")))
    .unsupportTips("请升级客户端")
    .enter(true)
    .reply(true)
    .build();

构建键盘

java
import cn.org.bukkit.bngeuit.Bngeuit;
import cn.org.bukkit.bngeuit.dto.message.Keyboard;
import cn.org.bukkit.bngeuit.dto.message.Button;

Keyboard kb = Keyboard.custom()
    .addRow(r -> r
        .addButton(Button.callback("ok", "确认", ButtonStyle.BLUE, "/confirm"))
        .addButton(Button.callback("cancel", "取消", ButtonStyle.GRAY, "/cancel"))
    )
    .addRow(r -> r
        .addButton(Button.link("home", "官网", ButtonStyle.GRAY, "https://qq.com"))
    )
    .build();

// 附带键盘发送
Bngeuit.sendGroupText(groupOpenid, "请选择操作:", kb);
Bngeuit.sendGroupMarkdown(groupOpenid, "**请选择:**", kb);

模板键盘:

java
Keyboard kb = Keyboard.template("1070001");

处理按钮点击

java
import cn.org.bukkit.bngeuit.Bngeuit;
import cn.org.bukkit.bngeuit.event.InteractionEvent;
import cn.org.bukkit.bngeuit.core.BotApi;

@SubscribeEvent
public void onInteraction(InteractionEvent e) {
    // 必须响应
    Bngeuit.respondInteraction(e.getInteractionId(),
        BotApi.InteractionResponseCode.SUCCESS);

    if ("/confirm".equals(e.getData())) {
        Bngeuit.sendGroupText(e.getGroupOpenid(), "操作已确认!");
    }
}

权限控制

java
// 所有人可见(默认)
Permission.ALL;

// 仅指定用户可见
Permission.specify(List.of("openid1", "openid2"));