CustomTriggerComponent

自定义属性触发器组件

请结合 CUSTOM 类型属性教学页面开发

interface CustomTriggerComponent<E: Event> {

    //触发器名称
    val name: String
    
    //触发器事件
    val event: Class<E>
    
    //触发器事件监听优先级
    val priority: EventPriority
    
    //触发器事件是否忽略取消
    val ignoreCancelled: Boolean

    /**
     * 触发器触发条件,条件不满足时将不触发处理
     * [event] 触发器此次事件
     */
    fun condition(event: E): Boolean {
        return true
    }

    /**
     * 触发者对象传入
     * [event] 触发器此次事件
     */
    fun caster(event: E): LivingEntity

    /**
     * 目标对象传入
     * [event] 触发器此次事件
     */
    fun target(event: E): LivingEntity? {
        return null
    }

    /**
     * 触发事件相关参数传入,可在 runCustom 属性处理方法获取
     * [event] 触发器此次事件
     */
    fun params(event: E): Array<Any> {
        return emptyArray()
    }

    /* 注册触发器 */
    fun register() {
        attributeManager.registerTrigger(this)
    }
}

示例

玩家使用 SkillAPI 技能时触发属性,触发器名称为 "SKILL CAST"

玩家使用 SkillAPI 技能对玩家类型的实体造成伤害时触发,触发器名称为 "SKILL DAMAGE PLAYER"

最后更新于

这有帮助吗?