AttributeAPI

API

方法名

描述

getAttributeData(Entity entity)

获取 [entity] 实体属性数据

getAttributeUtils(Entity entity)

获取 [entity] 实体属性工具类,包含 获取属性值 的各种方法

addSourceAttribute(Entity entity, String source, List<String>)

为 [entity] 实体增加来自 [source] 源的属性,属性列表 [attributeList]

delSourceAttribute(Entity entity, String source)

为 [entity] 实体删除来自 [source] 源的属性

getItem(String key)

获取到 [key] 物品数据

source 相同则覆盖掉原有属性,不同源可加不同属性

我想为玩家增加一些属性该怎么做?

Player player;
AttributeData data = AttributeAPI.getAttributeData(player);
List<String> attribute = Arrays.asList("物理伤害: 100-1000","生命力: 100");
AttributeAPI.addSourceAttribute(player, "额外属性", attribute)

我想获取玩家身上指定属性该怎么做?

Player player;
AttributeUtils util = AttributeAPI.getAttributeUtils(player);

//util.getAttributeRandomValue(AttributeName.DAMAGE)
//util.getAttributeRandomValue("物理伤害")

//PlugManager.attributeKey("属性变量") — 获取服务器该属性的属性标签
//util.getAttributeRandomValue(PlugManager.attributeKey("damage"))

double damage = util.getAttributeRandomValue(AttributeName.DAMAGE)

AttributeUtils getAttributeRandomValue() 方法说明 当玩家身上获取的属性值为 100 则返回 固定值(100) 但如果该属性值为 10-100 那则返回 随机值 如果你想获取最大值跟最小值,那请使用 getAttributeValue() 方法,该方法将返回 Number[] 分别为 最小值,最大值

最后更新于

这有帮助吗?