Skip to content

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 查看