键盘与按钮
快捷工厂
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"));