程序包 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
代表事件.
所有事件需要添加一个名为 getHandlerList() 的静态方法,返回与getHandlers()
一样的HandlerList
.
译注:说明白点,您必须把以下代码复制到您的自定义事件:
private static final HandlerList handlers = new HandlerList(); public HandlerList getHandlers() { return handlers; } public static HandlerList getHandlerList() { return handlers; }
-
嵌套类概要
-
构造器概要
-
方法概要
修饰符和类型方法说明获取这个事件的名称,默认情况下,他是事件的类的简短名称.abstract HandlerList
final boolean
任何自定义事件应该不与其他事件同步,必须使用特定的构造器.这是对使用异步事件的一些警告(注意事项): 这个事件永远不会触发内部代码触发的同步事件.尝试这么做的结果会得到IllegalStateException
. 不过,异步事件处理器可能触发同步或异步事件. 事件可能在多个时间任何优先级被触发. 任何新注册或未注册的处理器将在一个事件开始执行后被忽略. 这个事件的处理器可能阻塞一段时间. 一些实现可能会有选择地声明一个事件是异步的.这一行为应被明确定义. 异步调用不会计算在插件定时系统中.
-
构造器详细资料
-
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
获取这个事件的名称,默认情况下,他是事件的类的简短名称.原文:Convenience method for providing a user-friendly identifier. By default, it is the event's class's simple name.
- 返回:
- 这个事件的名称
-
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
- 这个事件永远不会触发内部代码触发的同步事件.尝试这么做的结果会得到
-