package tc.oc.commons.bukkit.event.targeted;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
/**
* {@link Listener} methods with this annotation will receive targeted events.
*
* This works the same as {@link EventHandler}, but is not actually related to it in any way.
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface TargetedEventHandler {
/**
* Define the priority of the event.
* <p>
* First priority to the last priority executed:
* <ol>
* <li>LOWEST
* <li>LOW
* <li>NORMAL
* <li>HIGH
* <li>HIGHEST
* <li>MONITOR
* </ol>
*
* @return the priority
*/
EventPriority priority() default EventPriority.NORMAL;
/**
* Define if the handler ignores a cancelled event.
* <p>
* If ignoreCancelled is true and the event is cancelled, the method is
* not called. Otherwise, the method is always called.
*
* @return whether cancelled events should be ignored
*/
boolean ignoreCancelled() default false;
}