Class Event

    • Constructor Detail

      • Event

        public Event()
        The default constructor is defined for cleaner code. This constructor assumes the event is synchronous.
      • Event

        public Event​(boolean isAsync)
        This constructor is used to explicitly declare an event as synchronous or asynchronous.
        Parameters:
        isAsync - true indicates the event will fire asynchronously, false by default from default constructor
    • Method Detail

      • getEventName

        @NotNull
        public String getEventName()
        Convenience method for providing a user-friendly identifier. By default, it is the event's class's simple name.
        Returns:
        name of this event
      • getHandlers

        @NotNull
        public abstract HandlerList getHandlers()
      • isAsynchronous

        public final boolean isAsynchronous()
        Any custom event that should not by synchronized with other events must use the specific constructor. These are the caveats of using an asynchronous event:
        • The event is never fired from inside code triggered by a synchronous event. Attempting to do so results in an IllegalStateException.
        • However, asynchronous event handlers may fire synchronous or asynchronous events
        • The event may be fired multiple times simultaneously and in any order.
        • Any newly registered or unregistered handler is ignored after an event starts execution.
        • The handlers for this event may block for any length of time.
        • Some implementations may selectively declare a specific event use as asynchronous. This behavior should be clearly defined.
        • Asynchronous calls are not calculated in the plugin timing system.
        Returns:
        false by default, true if the event fires asynchronously