AttributeTrigger
属性触发器,它负责根据属性类型触发属性
编写触发器类
实现 cn.org.bukkit.craneattribute.api.attribute.trigger.AttributeTrigger 接口
并在注册 AttributeType 时一同注册
Kotlin
class CustomTrigger() : AttributeTrigger<EntityDeathEvent> {
override val eventClass: Class<out EntityDeathEvent>
get() = EntityDeathEvent::class.java
override val priority: EventPriority
get() = EventPriority.HIGH
override val ignoreCancelled: Boolean
get() = false
// 返回 true 才会运行 trigger(event: EntityDeathEvent),可进行一些简单的判断
override fun condition(event: EntityDeathEvent): Boolean {
return event.entity.killer != null
}
override fun trigger(event: EntityDeathEvent) {
val entity = event.entity
val killer = event.entity.killer!!
// 通过一个 `CustomHandler` 处理器实例 并使用 handle() 处理
if (!killer.isDead) {
CustomHandler(killer.getAttrData(),entity.getAttrData()).handle()
}
}
// 当插件加载和重载时,会运行 onLoad()
override fun onLoad() {
}
}处理器实例
移步 AttributeHandler 查看
