更新类属性
UPDATE_AFTER
提示
非玩家实体也可以触发
需要重写的方法
JavaScript中onEnable(attr)onUpdateAfter(attr, entity, handler)
Groovy中onEnable()onUpdateAfter(entity, handler)
参数解释
attr: 属性本身,JsAttribute 对象(仅 JavaScript)entity: 触发属性更新者,LivingEntity 对象handler: 属性处理器,UpdateAfterHandler 对象
处理器实现的接口
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,则不会触发)
