事件系统概述
插件通过 @SubscribeEvent 注解即可监听机器人的各类事件。
@SubscribeEvent
java
import cn.org.bukkit.bngeuit.event.*;
import cn.org.bukkit.bngeuit.Bngeuit;
public class MyListener {
@SubscribeEvent
public void onGroupAt(GroupAtMessageEvent e) {
Bngeuit.replyGroupText(
e.getGroupOpenid(), e.getId(), 1,
"收到: " + e.getContent()
);
}
@SubscribeEvent
public void onC2CMessage(C2CMessageEvent e) {
Bngeuit.replyC2CText(
e.getAuthor().id(), e.getId(), 1,
"收到私聊"
);
}
@SubscribeEvent
public void onReady(ReadyEvent e) {
// 机器人启动完成
}
@SubscribeEvent
public void onInteraction(InteractionEvent e) {
Bngeuit.respondInteraction(e.getInteractionId(),
cn.org.bukkit.bngeuit.core.BotApi.InteractionResponseCode.SUCCESS);
}
}规则
- 标注在 public 方法上
- 有且仅有 一个参数,类型继承自
Event - 方法名、参数名无限制
- 插件 JAR 内的类会被自动扫描注册
在 JavaPlugin 中使用
java
public class MyPlugin extends JavaPlugin {
@Override
public void onEnable() {
getLogger().info("插件已启用");
}
@SubscribeEvent
public void onGroupAt(GroupAtMessageEvent e) {
Bngeuit.replyGroupText(
e.getGroupOpenid(), e.getId(), 1,
"你好," + e.getAuthor().username()
);
}
}自动扫描
插件 JAR 内的所有 @SubscribeEvent 方法会被自动注册,无需手动操作。
