package tc.oc.commons.bukkit.event.targeted; import java.lang.reflect.Method; import org.bukkit.event.Event; import tc.oc.commons.bukkit.event.EventHandlerInfo; import tc.oc.commons.bukkit.event.EventHandlerScanner; import tc.oc.commons.bukkit.event.EventKey; /** * Scans classes for targeted event handler methods, which are annotated with {@link TargetedEventHandler} */ public class TargetedEventHandlerScanner extends EventHandlerScanner<Event, TargetedEventHandler, EventHandlerInfo<? extends Event>> { @Override protected EventHandlerInfo<? extends Event> createHandlerInfo(Method method, Class<? extends Event> eventType, TargetedEventHandler annotation) { return new EventHandlerInfo<>(new EventKey<>(eventType, annotation.priority()), method, annotation.ignoreCancelled()); } }