Package org.bukkit.event
Class Event
java.lang.Object
org.bukkit.event.Event
- Direct Known Subclasses:
AsyncPlayerPreLoginEvent
,AsyncTabCompleteEvent
,BlockEvent
,EntityEvent
,FillProfileEvent
,GS4QueryEvent
,HangingEvent
,InventoryEvent
,InventoryMoveItemEvent
,InventoryPickupItemEvent
,LookupProfileEvent
,PlayerConnectionCloseEvent
,PlayerEvent
,PlayerHandshakeEvent
,PlayerLeashEntityEvent
,PlayerPreLoginEvent
,PreCreatureSpawnEvent
,PreFillProfileEvent
,PreLookupProfileEvent
,ProfileWhitelistVerifyEvent
,ServerEvent
,ServerExceptionEvent
,ServerTickEndEvent
,ServerTickStartEvent
,TabCompleteEvent
,ThrownEggHatchEvent
,UnknownCommandEvent
,VehicleEvent
,WeatherEvent
,WhitelistToggleEvent
,WorldEvent
Represents an event.
All events require a static method named getHandlerList() which returns the same
HandlerList
as getHandlers()
.-
Nested Class Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
Calls the event and tests if cancelled.Convenience method for providing a user-friendly identifier.abstract @NotNull HandlerList
final boolean
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
-
callEvent
public boolean callEvent()Calls the event and tests if cancelled.- Returns:
- false if event was cancelled, if cancellable. otherwise true.
-
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
-