EventNode<Event> node = EventNode.all("demo");
node.addListener(EntityTickEvent.class, event -> {
node.addListener(EventListener.builder(EntityTickEvent.class)
.expireCount(50) // Stop after 50 executions
.expireWhen(event -> event.getEntity().isGlowing()) // Stop once the predicate returns true
.handler(entityTickEvent ->
System.out.println("Entity tick!"))
EventNode<PlayerEvent> playerNode = EventNode.type("player-listener", EventFilter.PLAYER);
// playerNode.addListener(EntityTickEvent.class, event -> {}); -> does not work as playerNode only accept player events
playerNode.addListener(PlayerTickEvent.class, event -> {});