Package org.bukkit.event
Class Event
java.lang.Object
org.bukkit.event.Event
- Direct Known Subclasses:
AsyncPlayerPreLoginEvent
,BlockEvent
,EntityEvent
,HangingEvent
,InventoryEvent
,InventoryMoveItemEvent
,InventoryPickupItemEvent
,PlayerEvent
,PlayerLeashEntityEvent
,PlayerPreLoginEvent
,ServerEvent
,TabCompleteEvent
,VehicleEvent
,WeatherEvent
,WorldEvent
public abstract class Event extends Object
Represents an event.
All events require a static method named getHandlerList() which returns the same
HandlerList
as getHandlers()
.-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Event.Result
-
Constructor Summary
-
Method Summary
Modifier and Type Method Description String
getEventName()
Convenience method for providing a user-friendly identifier.abstract HandlerList
getHandlers()
boolean
isAsynchronous()
Any custom event that should not by synchronized with other events must use the specific constructor.
-
Constructor Details
-
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 Details
-
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
-
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
- The event is never fired from inside code triggered by a
synchronous event. Attempting to do so results in an
-