Aria 对象函数
Overture 向物品动作提供的 ItemStream 与玩家冷却函数
val.item是当前动作对应的 Overture 物品对象。val.player是触发动作的玩家;没有玩家参与的动作中可能不存在。- 每次执行物品动作都会创建新的 Aria Context。
Overture 只提供物品与物品冷却相关的函数。发送消息、播放声音、添加药水效果或移动玩家等能力,需要由 ArcartX、Chronos 或其他插件注册。
物品对象 val.item
以下函数的目标对象为当前物品(ItemStream)。
damage(amount)
- 扣除物品的自定义耐久;耐久最低为 0
- 参数:
amount— 数字类型,要扣除的耐久;负数按 0 处理 - 返回值:
none - 调用示例
repair(amount)
- 恢复物品的自定义耐久,但不会超过最大耐久
- 参数:
amount— 数字类型,要恢复的耐久;负数按 0 处理 - 返回值:
none - 调用示例
durability()
- 获取物品当前的自定义耐久
- 参数:无
- 返回值:数字类型;物品没有配置耐久时返回
0 - 调用示例
maxDurability()
- 获取物品的最大自定义耐久
- 参数:无
- 返回值:数字类型;物品没有配置耐久时返回
0 - 调用示例
consume(amount?)
- 减少当前物品的堆叠数量
- 参数:
amount— 可选数字类型,要消耗的数量,默认为1 - 返回值:
none - 调用示例
data(key)
- 读取物品
overture.data中的自定义数据
- 参数:
key— 字符串类型,数据键名 - 返回值:数字、字符串或
none;布尔数据读取为0或1 - 调用示例
data(key, value)
- 向物品
overture.data写入自定义数据
- 参数:
key— 字符串类型,数据键名value— 数字、字符串或布尔类型;数字会保存为整数
- 返回值:
none - 调用示例
removeData(key)
- 删除物品中的一项自定义数据
- 参数:
key— 字符串类型,要删除的数据键名 - 返回值:
none - 调用示例
update()
- 标记当前物品需要重建,使名称、Lore 等动态内容更新
- 参数:无
- 返回值:
none - 调用示例
id()
- 获取当前物品的 Overture ID
- 参数:无
- 返回值:字符串类型;没有 Overture ID 时返回空字符串
- 调用示例
amount()
- 获取当前物品的堆叠数量
- 参数:无
- 返回值:数字类型
- 调用示例
uses()
- 获取物品
data.uses中记录的剩余使用次数
- 参数:无
- 返回值:数字类型;没有配置时返回
0 - 调用示例
use(amount?)
- 扣除物品的剩余使用次数;次数归零时会消耗该物品
- 参数:
amount— 可选数字类型,要扣除的次数,默认为1 - 返回值:
none - 调用示例
玩家对象 val.player
以下函数的目标对象为触发动作的玩家(Player),用于为物品动作设置独立冷却。
checkItemCooldown(key, duration)
- 检查指定物品冷却是否已经结束
- 参数:
key— 字符串类型,冷却键名duration— 数字类型,冷却时长,单位为毫秒
- 返回值:布尔类型;冷却不存在或已经结束时返回
true - 调用示例
setItemCooldown(key)
- 从当前时间开始记录指定物品冷却
- 参数:
key— 字符串类型,冷却键名 - 返回值:
none - 调用示例
itemCooldownRemaining(key, duration)
- 获取指定物品冷却的剩余时间
- 参数:
key— 字符串类型,冷却键名duration— 数字类型,完整冷却时长,单位为毫秒
- 返回值:数字类型,剩余毫秒数
- 调用示例
冷却按玩家 UUID 和键名分别记录,玩家退出服务器后会清理。
完整示例
使用限制
- Aria 脚本不能直接取消 Bukkit 事件。需要取消事件时,在动作配置键末尾添加
!!;Behavior 则可以返回cancelEvent。 - Overture 不会向脚本注入 Bukkit Event、
self或 Behavior variables。 data(key, value)只适合写入数字、字符串和布尔值,不支持复杂 List 或 Map。
