1
mirror of https://github.com/CarmJos/EasyListener.git synced 2026-06-04 19:30:57 +08:00

feat(api): 提供functional注册方式,预设方法提供方式变更。

BREAKING CHANGE: 大部分API的实现方式发生变革,与先前版本并不兼容。
This commit is contained in:
2022-06-25 04:50:39 +08:00
parent ed376a8239
commit 10b4800ac9
12 changed files with 677 additions and 274 deletions
+4 -29
View File
@@ -12,43 +12,18 @@
### [开发示例](src/test/java/DemoPlugin.java)
您可以点击这里访问项目的 [JavaDoc](https://carmjos.github.io/EasyListener) 。
相关开发示例请 [点击这里](src/test/java/DemoPlugin.java),您也可以直接访问项目的 [JavaDoc](https://carmjos.github.io/EasyListener) 。
```java
public class DemoPlugin extends JavaPlugin {
protected final EasyListener listeners = EasyListener.create(this);
@Override
public void onEnable() {
listeners // 基本用法
.handle(PlayerInteractAtEntityEvent.class, (event) -> {
Entity clicked = event.getRightClicked();
Player player = event.getPlayer();
if (clicked instanceof Player) {
player.sendMessage("你点了 " + clicked.getName() + " 一下!");
}
}) // 处理一个事件
.cancel(PlayerPickupArrowEvent.class) // 取消一个事件
.cancel(
EntityDamageEvent.class, EventPriority.HIGHEST,
(event) -> event.getCause() != EntityDamageEvent.DamageCause.ENTITY_ATTACK
); // 有条件的取消一个事件
listeners // 额外提供的快捷方法
.cancelDeath(null) // 所有玩家取消死亡
.cancelBreak(player -> !player.isOp()) // 禁止非OP玩家破坏方块/接水或岩浆
.cancelPlace(player -> !player.isOp()) // 禁止非OP玩家放置方块/放水或岩浆
.cancelPVP((attacker, victim) -> !attacker.isOp()) // 禁止非op玩家PVP
.cancelWeatherChange() // 取消天气变更
.cancelJoinMessage() // 取消加入消息
// .cancelQuitMessage()
// .handleJoinMessage(player -> "玩家 " + player.getName() + " 加入了服务器。")
.handleQuitMessage(player -> "玩家 " + player.getName() + " 退出了服务器。"); // 设定退出消息
EasyListener listeners = EasyListener.create(this);
// listeners...; // Do something...
}
}
```