org.bukkit.event
Class Event

java.lang.Object
  extended by org.bukkit.event.Event
Direct Known Subclasses:
AsyncPlayerPreLoginEvent, BlockEvent, EntityEvent, HangingEvent, InventoryEvent, InventoryPickupItemEvent, PaintingEvent, PlayerEvent, PlayerPreLoginEvent, ServerEvent, VehicleEvent, WeatherEvent, WorldEvent

public abstract class Event
extends Object

Represents an event


Nested Class Summary
static class Event.Result
           
 
Constructor Summary
Event()
          The default constructor is defined for cleaner code.
Event(boolean isAsync)
          This constructor is used to explicitly declare an event as synchronous or asynchronous.
 
Method Summary
 String getEventName()
           
abstract  HandlerList getHandlers()
           
 boolean isAsynchronous()
          Any custom event that should not by synchronized with other events must use the specific constructor.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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
Method Detail

getEventName

public String getEventName()
Returns:
Name of this event

getHandlers

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


    Copyright © 2013. All Rights Reserved.