属性数据 (AttributeData)
属性数据
如何获取玩家身上的数据
AttributeAPI 已提供了 getAttrData(Entity entity)
方法,该方法可以获取玩家身上的属性数据
AttributeData data = AttributeAPI.getAttrData(entity);
如何获取玩家身上某一项属性的值呢?
可通过 getAttrData(Entity entity)
获取实体 AttributeData 数据
AttributeData 内有 getAttributeValue(String attributeName)
方法,该方法可以获取玩家身上指定属性的值
AttributeData data = AttributeAPI.getAttrData(entity);
double health = data.getAttributeValue("生命力");
我要获取玩家物理伤害的最小值跟最大值该怎么做?
同样是通过 getAttributeValue(String attributeName)
方法
像 物理伤害 这种 最小值-最大值随机 的属性,获取时 attributeName 必须加上 [0] [1] 外部注册的属性也相同
//2.2.5 之前方法
@Deprecated
AttributeData data = AttributeAPI.getAttrData(entity);
double minDamage = data.getAttributeValue("物理伤害");
double maxDamage = data.getAttributeValue("物理伤害[1]");
//2.2.5 之后开始更加方便的方法
//2.2.5 版本开始提供的 AttributeName 枚举类
String defaultName = AttributeName.DAMAGE.toDefaultName();
Number[] damage = data.getAttributeValues(defaultName);
double minDamage = damage[0].doubleValue();
double maxDamage = damage[1].doubleValue();
最后更新于
这有帮助吗?