Skip to content

AttributeAPI

AttributeAPI 是插件的公开 API 入口类,位于 cn.org.bukkit.craneattribute.api 包下。所有第三方插件和脚本都应通过此类来操作属性系统。

获取实体属性数据

Kotlin
// 获取实体的 AttributeData
val data = AttributeAPI.getAttrData(entity)

// 获取属性值(范围值,返回 DoubleArray[min, max])
val value = data.getAttrValue("物理攻击")

// 获取属性随机值(在 min-max 范围内随机取值)
val random = data.getRandomValue("物理攻击")

// 获取战斗力
val power = data.getPower()
Java
// Java 调用方式相同
AttributeData data = AttributeAPI.getAttrData(entity);
double random = data.getRandomValue("物理攻击");

注册默认属性

Kotlin
// 注册一个 DEFAULT 类型的属性
AttributeAPI.registerDefaultAttribute("custom_attr", "自定义属性", 1.0, -1.0)

操作属性源

Kotlin
val data = AttributeAPI.getAttrData(entity)

// 添加属性源
val source = FormatListAttributeSource("测试源", listOf("物理攻击:100", "生命值:500"), -1)
data.addAttributeSource(source)

// 异步添加属性源
data.addAttributeSourceAsync(source) {
    // 添加完成后的回调
}

// 移除属性源
data.removeAttributeSource("测试源", false)

完整参考

更多方法请参阅 javadoc