add convenience event constructors
This commit is contained in:
parent
f2cf3b501c
commit
9069cc271f
|
@ -1,6 +1,8 @@
|
|||
package dev.frogmc.froglib.events.api;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.BiConsumer;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Function;
|
||||
|
||||
import dev.frogmc.froglib.events.impl.EventImpl;
|
||||
|
@ -19,6 +21,18 @@ public interface Event<T> {
|
|||
return EventImpl.of(invokerFactory);
|
||||
}
|
||||
|
||||
static Event<Runnable> runnable(){
|
||||
return of(l -> () -> l.forEach(Runnable::run));
|
||||
}
|
||||
|
||||
static <T> Event<Consumer<T>> consumer(){
|
||||
return of(l -> t -> l.forEach(c -> c.accept(t)));
|
||||
}
|
||||
|
||||
static <T, U> Event<BiConsumer<T, U>> biConsumer(){
|
||||
return of(l -> (t, u) -> l.forEach(c -> c.accept(t, u)));
|
||||
}
|
||||
|
||||
void register(T listener);
|
||||
|
||||
T invoker();
|
||||
|
|
|
@ -47,10 +47,6 @@ public class EventImpl<T> implements Event<T> {
|
|||
return of(list -> generateInvoker(list, (Class<B>) list.getFirst().getClass().getInterfaces()[0]));
|
||||
}
|
||||
|
||||
public static EventImpl<Runnable> simple() {
|
||||
return of(l -> () -> l.forEach(Runnable::run));
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private static <B> B generateInvoker(List<B> list, Class<B> clazz) {
|
||||
try {
|
||||
|
|
Loading…
Reference in a new issue