事件¶
每个平台都有事件(Event)部分,但 TabooLib 自身不处理事件。本文所描述的内容仅限事件的定义,实际运用请参考 监听器 部分。
跨平台事件¶
跨平台事件指使用 TabooLib 提供的接口定义的事件可以在多个平台中使用,具体表现为:
class SomethingEvent(val proxyPlayer: ProxyPlayer): ProxyEvent {
/**
* 事件是否允许被取消,默认为 true
* 尝试取消 allowCancelled 为 false 的事件会抛出 IllegalStateException 异常
*/
override val allowCancelled: Boolean
get() = false
}
唤起事件:
// call 方法的返回值 Boolean 表示这个事件是否被取消
SomethingEvent(proxyPlayer).call()
Warning
依赖于 ProxyEvent
的跨平台事件,只能被 TabooLib 开发的插件监听。
子平台事件¶
并非所有开发者都喜欢使用 TabooLib,因此我们可以使用子平台事件。但是相对的,子平台事件是基于平台的,无法跨平台应用。
平台 |
对应事件 |
---|---|
Bukkit |
BukkitProxyEvent |
Nukkit |
NukkitProxyEvent |
BungeeCord |
BungeeProxyEvent |
Sponge (api-7) |
Sponge7ProxyEvent |
Sponge (api-8) |
Sponge8ProxyEvent |
Velocity |
VelocityProxyEvent |
子平台事件的使用方式与 ProxyEvent
无异。
class SomethingEvent(val player: Player): BukkitProxyEvent
使用子平台事件需要安装对应的平台模块,例如 BukkitProxyEvent
需要安装 platfom-bukkit
。