FreedomNetworkSuite/Patchwork/src/main/java/me/totalfreedom/data/EventRegistry.java

40 lines
792 B
Java

package me.totalfreedom.data;
import me.totalfreedom.event.FEvent;
import me.totalfreedom.provider.EventProvider;
import java.util.ArrayList;
import java.util.List;
public class EventRegistry
{
private final List<FEvent> events;
public EventRegistry()
{
this.events = new ArrayList<>();
}
public void register(final FEvent event)
{
this.events.add(event);
}
public void unregister(final FEvent event)
{
this.events.remove(event);
}
public <T extends FEvent> EventProvider<T> getEvent(final Class<T> clazz)
{
for (final FEvent event : this.events)
{
if (clazz.isInstance(event))
{
return () -> (T) event;
}
}
return null;
}
}