更新类属性
UPDATE_AFTER
提示
非玩家实体也可以触发
需要重写的方法
JavaScript
/**
* @parms attr 属性本身,JsAttribute 对象
*/
function onEnable(attr)
/**
* @parms attr 属性本身,JsAttribute 对象
* @param entity 触发者,LivingEntity 对象
* @param handler 处理器,UpdateAfterHandler 对象
* @return 属性是否触发,布尔值
*/
function onUpdateAfter(attr, entity, handler)Groovy
@Override
void onEnable()
/**
* @param entity 触发者,LivingEntity 对象
* @param handler 处理器,UpdateAfterHandler 对象
* @return 属性是否触发,布尔值
*/
@Override
boolean onUpdateAfter(LivingEntity entity, UpdateAfterHandler handler)处理器实现的接口
AttributeHandler AttributeTracker MetadataTracker
示例
JavaScript
Groovy
绑定修改属性源事件
部分时候,我们不止需要在属性更新后触发它,还有可能需要在属性源发生变动时也触发它,但属性源发生变动时,并不会触发属性更新事件,比如:需要在含有生命值属性的属性源添加或移除时,修正玩家生命值
可以在 onEnable 时,为属性添加一个元数据,如下
JavaScript
function onEnable(attr) {
attr.setMeta("bind source event", true)
}Groovy
@Override
void onEnable() {
this.setMeta("bind source event", true)
}这样添加或移除属性源时,也会触发这个属性了(若属性源中的这个属性值为 0,则不会触发)
