package tc.oc.commons.bukkit.event.targeted;
import java.util.stream.Stream;
import org.bukkit.event.Listener;
/**
* An object that knows which {@link Listener}s should receive a given targeted event instance.
* Routers are registered at startup through a {@link TargetedEventRouterBinder}.
*/
public interface TargetedEventRouter<E> {
/**
* Return the listeners that should receive the given targeted event.
* These listeners must already be registered with the {@link TargetedEventBus}.
*/
Stream<Listener> listeners(E event);
}