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 sameHandlerList
asgetHandlers()
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Event.Result
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods 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 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
- The event is never fired from inside code triggered by a
synchronous event. Attempting to do so results in an
-
-