mirror of
https://github.com/Minestom/Minestom.git
synced 2024-09-29 15:07:36 +02:00
Simplify EventNode#map
This commit is contained in:
parent
8ec33bb6c8
commit
e300d3ec57
@ -40,7 +40,7 @@ public class EventNode<T extends Event> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private final Map<Class<? extends T>, List<EventListener<T>>> listenerMap = new ConcurrentHashMap<>();
|
private final Map<Class<? extends T>, List<EventListener<T>>> listenerMap = new ConcurrentHashMap<>();
|
||||||
private final Map<Object, RedirectionEntry<T>> redirectionMap = new ConcurrentHashMap<>();
|
private final Map<Object, EventNode<T>> redirectionMap = new ConcurrentHashMap<>();
|
||||||
private final Set<EventNode<T>> children = new CopyOnWriteArraySet<>();
|
private final Set<EventNode<T>> children = new CopyOnWriteArraySet<>();
|
||||||
|
|
||||||
protected final EventFilter<T, ?> filter;
|
protected final EventFilter<T, ?> filter;
|
||||||
@ -82,9 +82,9 @@ public class EventNode<T extends Event> {
|
|||||||
// Process redirection
|
// Process redirection
|
||||||
final Object handler = filter.getHandler(event);
|
final Object handler = filter.getHandler(event);
|
||||||
if (handler != null) {
|
if (handler != null) {
|
||||||
final var entry = redirectionMap.get(handler);
|
final var node = redirectionMap.get(handler);
|
||||||
if (entry != null) {
|
if (node != null) {
|
||||||
entry.node.call(event);
|
node.call(event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Process listener list
|
// Process listener list
|
||||||
@ -172,11 +172,8 @@ public class EventNode<T extends Event> {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <E extends T, V2> EventNode<T> map(@NotNull EventFilter<E, V2> filter, @NotNull V2 value, @NotNull EventNode<E> node) {
|
public <E extends T> EventNode<T> map(@NotNull Object value, @NotNull EventNode<E> node) {
|
||||||
RedirectionEntry<E> entry = new RedirectionEntry<>();
|
this.redirectionMap.put(value, (EventNode<T>) node);
|
||||||
entry.filter = filter;
|
|
||||||
entry.node = node;
|
|
||||||
this.redirectionMap.put(value, (RedirectionEntry<T>) entry);
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -215,9 +212,4 @@ public class EventNode<T extends Event> {
|
|||||||
throw new IllegalStateException("Something wrong happened, listener count: " + result);
|
throw new IllegalStateException("Something wrong happened, listener count: " + result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class RedirectionEntry<E extends Event> {
|
|
||||||
EventFilter<E, ?> filter;
|
|
||||||
EventNode<E> node;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -175,7 +175,7 @@ public class PlayerInit {
|
|||||||
var test = EventNode.type(EventFilter.ENTITY);
|
var test = EventNode.type(EventFilter.ENTITY);
|
||||||
test.addListener(EventListener.of(PlayerMoveEvent.class, (e) ->
|
test.addListener(EventListener.of(PlayerMoveEvent.class, (e) ->
|
||||||
System.out.println("Test movement")));
|
System.out.println("Test movement")));
|
||||||
empty.map(EventFilter.ENTITY, source, test);
|
empty.map(source, test);
|
||||||
});
|
});
|
||||||
|
|
||||||
globalEventHandler.addEventCallback(PlayerDeathEvent.class, event -> {
|
globalEventHandler.addEventCallback(PlayerDeathEvent.class, event -> {
|
||||||
|
Loading…
Reference in New Issue
Block a user