mirror of
https://github.com/architectury/architectury-api.git
synced 2026-03-28 11:57:01 -05:00
Lazily initialize event invokers
This commit is contained in:
@@ -122,7 +122,6 @@ public final class EventFactory {
|
||||
this.clazz = Objects.requireNonNull(clazz);
|
||||
this.function = function;
|
||||
this.listeners = emptyArray();
|
||||
update();
|
||||
}
|
||||
|
||||
private T[] emptyArray() {
|
||||
@@ -135,19 +134,22 @@ public final class EventFactory {
|
||||
|
||||
@Override
|
||||
public T invoker() {
|
||||
if (invoker == null) {
|
||||
update();
|
||||
}
|
||||
return invoker;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void register(T listener) {
|
||||
listeners = ArrayUtils.add(listeners, listener);
|
||||
update();
|
||||
invoker = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unregister(T listener) {
|
||||
listeners = ArrayUtils.removeElement(listeners, listener);
|
||||
update();
|
||||
invoker = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -158,7 +160,7 @@ public final class EventFactory {
|
||||
@Override
|
||||
public void clearListeners() {
|
||||
listeners = emptyArray();
|
||||
update();
|
||||
invoker = null;
|
||||
}
|
||||
|
||||
public void update() {
|
||||
|
||||
Reference in New Issue
Block a user