diff --git a/src/main/java/net/minestom/server/event/EventNode.java b/src/main/java/net/minestom/server/event/EventNode.java index 5052abf99..f43a5f6b4 100644 --- a/src/main/java/net/minestom/server/event/EventNode.java +++ b/src/main/java/net/minestom/server/event/EventNode.java @@ -10,6 +10,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CopyOnWriteArraySet; import java.util.function.BiPredicate; +import java.util.function.Consumer; import java.util.function.Predicate; public class EventNode { @@ -171,6 +172,10 @@ public class EventNode { return this; } + public EventNode addListener(@NotNull Class eventType, @NotNull Consumer<@NotNull E> listener) { + return addListener(EventListener.of(eventType, listener)); + } + public EventNode map(@NotNull Object value, @NotNull EventNode node) { this.redirectionMap.put(value, (EventNode) node); return this; diff --git a/src/test/java/demo/PlayerInit.java b/src/test/java/demo/PlayerInit.java index 171e8cb12..3f4657242 100644 --- a/src/test/java/demo/PlayerInit.java +++ b/src/test/java/demo/PlayerInit.java @@ -139,8 +139,8 @@ public class PlayerInit { var empty = EventNode.all() .setName("empty") - .addListener(EventListener.of(PlayerMoveEvent.class, (event) -> { - })); + .addListener(PlayerMoveEvent.class, (event) -> { + }); var node = EventNode.type(EventFilter.PLAYER) .setName("node") @@ -150,7 +150,10 @@ public class PlayerInit { .build()); var conditional = EventNode.predicateValue(EventFilter.PLAYER, Player::isCreative) - .addListener(EventListener.of(PlayerMoveEvent.class, (event) -> System.out.println("creative player moved"))); + .addListener(PlayerMoveEvent.class, (event) -> System.out.println("creative player moved")); + + node.addChild(conditional); + node.call(new PlayerTickEvent(null)); GlobalEventHandler globalEventHandler = MinecraftServer.getGlobalEventHandler(); globalEventHandler.addEventCallback(EntityAttackEvent.class, event -> { @@ -172,8 +175,8 @@ public class PlayerInit { ((Player) source).sendMessage("You attacked something!"); } empty.map(source, EventNode.type(EventFilter.ENTITY) - .addListener(EventListener.of(PlayerMoveEvent.class, (e) -> - System.out.println("Test movement")))); + .addListener(PlayerMoveEvent.class, (e) -> + System.out.println("Test movement"))); }); globalEventHandler.addEventCallback(PlayerDeathEvent.class, event -> {