mirror of
https://github.com/SimplexDevelopment/FreedomNetworkSuite.git
synced 2025-07-01 21:26:41 +00:00
31 lines
730 B
Java
31 lines
730 B
Java
package me.totalfreedom.event;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
class SubscriptionBox<T extends FEvent>
|
|
{
|
|
private final List<EventSubscription<T>> subscriptions;
|
|
|
|
public SubscriptionBox() {
|
|
this.subscriptions = new ArrayList<>();
|
|
}
|
|
|
|
public void addSubscription(final EventSubscription<T> subscription) {
|
|
subscriptions.add(subscription);
|
|
}
|
|
|
|
public void removeSubscription(final EventSubscription<?> subscription) {
|
|
subscriptions.remove(subscription);
|
|
}
|
|
|
|
public void tick() {
|
|
subscriptions.forEach(s -> {
|
|
if (!s.event().shouldCall()) return;
|
|
|
|
s.callback().call(s.event());
|
|
s.event().reset();
|
|
});
|
|
}
|
|
}
|