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:
@@ -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...
|
||||
}
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user