程序包 org.bukkit.event

类 Event

java.lang.Object
org.bukkit.event.Event
直接已知子类:
AsyncPlayerPreLoginEvent, BlockEvent, EntityEvent, HangingEvent, InventoryEvent, InventoryMoveItemEvent, InventoryPickupItemEvent, PlayerEvent, PlayerLeashEntityEvent, PlayerPreLoginEvent, ServerEvent, TabCompleteEvent, VehicleEvent, WeatherEvent, WorldEvent

public abstract class Event extends Object
代表事件.

所有事件需要添加一个名为 getHandlerList() 的静态方法,返回与getHandlers()一样的HandlerList.

译注:说明白点,您必须把以下代码复制到您的自定义事件:

    private static final HandlerList handlers = new HandlerList();

    public HandlerList getHandlers() {
        return handlers;
    }

    public static HandlerList getHandlerList() {
        return handlers;
    }
 
另请参阅:
  • 嵌套类概要

    嵌套类
    修饰符和类型
    说明
    static enum 
     
  • 构造器概要

    构造器
    构造器
    说明
    为了更简单清晰的代码而制造。
    Event(boolean isAsync)
    这个构造器用于显示声明一个事件是同步还是异步的.
  • 方法概要

    修饰符和类型
    方法
    说明
    获取这个事件的名称,默认情况下,他是事件的类的简短名称.
    abstract HandlerList
     
    final boolean
    任何自定义事件应该不与其他事件同步,必须使用特定的构造器.这是对使用异步事件的一些警告(注意事项): 这个事件永远不会触发内部代码触发的同步事件.尝试这么做的结果会得到IllegalStateException. 不过,异步事件处理器可能触发同步或异步事件. 事件可能在多个时间任何优先级被触发. 任何新注册或未注册的处理器将在一个事件开始执行后被忽略. 这个事件的处理器可能阻塞一段时间. 一些实现可能会有选择地声明一个事件是异步的.这一行为应被明确定义. 异步调用不会计算在插件定时系统中.

    从类继承的方法 java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 构造器详细资料

    • 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.

      参数:
      isAsync - true则为异步事件
  • 方法详细资料

    • getEventName

      public String getEventName()
      获取这个事件的名称,默认情况下,他是事件的类的简短名称.

      原文:Convenience method for providing a user-friendly identifier. By default, it is the event's class's simple name.

      返回:
      这个事件的名称
    • getHandlers

      public abstract HandlerList getHandlers()
    • isAsynchronous

      public final boolean isAsynchronous()
      任何自定义事件应该不与其他事件同步,必须使用特定的构造器.这是对使用异步事件的一些警告(注意事项):
      • 这个事件永远不会触发内部代码触发的同步事件.尝试这么做的结果会得到IllegalStateException.
      • 不过,异步事件处理器可能触发同步或异步事件.
      • 事件可能在多个时间任何优先级被触发.
      • 任何新注册或未注册的处理器将在一个事件开始执行后被忽略.
      • 这个事件的处理器可能阻塞一段时间.
      • 一些实现可能会有选择地声明一个事件是异步的.这一行为应被明确定义.
      • 异步调用不会计算在插件定时系统中.

      原文: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.
      返回:
      默认情况下返回false, 事件触发异步了返回true