LogoArcartX Doc

Aria 对象函数

Overture 向物品动作提供的 ItemStream 与玩家冷却函数

  • val.item 是当前动作对应的 Overture 物品对象。
  • val.player 是触发动作的玩家;没有玩家参与的动作中可能不存在。
  • 每次执行物品动作都会创建新的 Aria Context。

Overture 只提供物品与物品冷却相关的函数。发送消息、播放声音、添加药水效果或移动玩家等能力,需要由 ArcartX、Chronos 或其他插件注册。

物品对象 val.item

以下函数的目标对象为当前物品(ItemStream)。

damage(amount)

  • 扣除物品的自定义耐久;耐久最低为 0
  • 参数amount — 数字类型,要扣除的耐久;负数按 0 处理
  • 返回值none
  • 调用示例
val.item.damage(10)

repair(amount)

  • 恢复物品的自定义耐久,但不会超过最大耐久
  • 参数amount — 数字类型,要恢复的耐久;负数按 0 处理
  • 返回值none
  • 调用示例
val.item.repair(5)

durability()

  • 获取物品当前的自定义耐久
  • 参数:无
  • 返回值:数字类型;物品没有配置耐久时返回 0
  • 调用示例
val.item.durability()

maxDurability()

  • 获取物品的最大自定义耐久
  • 参数:无
  • 返回值:数字类型;物品没有配置耐久时返回 0
  • 调用示例
val.item.maxDurability()

consume(amount?)

  • 减少当前物品的堆叠数量
  • 参数amount — 可选数字类型,要消耗的数量,默认为 1
  • 返回值none
  • 调用示例
val.item.consume(1)

data(key)

  • 读取物品 overture.data 中的自定义数据
  • 参数key — 字符串类型,数据键名
  • 返回值:数字、字符串或 none;布尔数据读取为 01
  • 调用示例
val.item.data('charges')

data(key, value)

  • 向物品 overture.data 写入自定义数据
  • 参数
    • key — 字符串类型,数据键名
    • value — 数字、字符串或布尔类型;数字会保存为整数
  • 返回值none
  • 调用示例
val.item.data('charges', 3)

removeData(key)

  • 删除物品中的一项自定义数据
  • 参数key — 字符串类型,要删除的数据键名
  • 返回值none
  • 调用示例
val.item.removeData('charges')

update()

  • 标记当前物品需要重建,使名称、Lore 等动态内容更新
  • 参数:无
  • 返回值none
  • 调用示例
val.item.update()

id()

  • 获取当前物品的 Overture ID
  • 参数:无
  • 返回值:字符串类型;没有 Overture ID 时返回空字符串
  • 调用示例
val.item.id()

amount()

  • 获取当前物品的堆叠数量
  • 参数:无
  • 返回值:数字类型
  • 调用示例
val.item.amount()

uses()

  • 获取物品 data.uses 中记录的剩余使用次数
  • 参数:无
  • 返回值:数字类型;没有配置时返回 0
  • 调用示例
val.item.uses()

use(amount?)

  • 扣除物品的剩余使用次数;次数归零时会消耗该物品
  • 参数amount — 可选数字类型,要扣除的次数,默认为 1
  • 返回值none
  • 调用示例
val.item.use()

玩家对象 val.player

以下函数的目标对象为触发动作的玩家(Player),用于为物品动作设置独立冷却。

checkItemCooldown(key, duration)

  • 检查指定物品冷却是否已经结束
  • 参数
    • key — 字符串类型,冷却键名
    • duration — 数字类型,冷却时长,单位为毫秒
  • 返回值:布尔类型;冷却不存在或已经结束时返回 true
  • 调用示例
val.player.checkItemCooldown('fireball', 5000)

setItemCooldown(key)

  • 从当前时间开始记录指定物品冷却
  • 参数key — 字符串类型,冷却键名
  • 返回值none
  • 调用示例
val.player.setItemCooldown('fireball')

itemCooldownRemaining(key, duration)

  • 获取指定物品冷却的剩余时间
  • 参数
    • key — 字符串类型,冷却键名
    • duration — 数字类型,完整冷却时长,单位为毫秒
  • 返回值:数字类型,剩余毫秒数
  • 调用示例
val.player.itemCooldownRemaining('fireball', 5000)

冷却按玩家 UUID 和键名分别记录,玩家退出服务器后会清理。

完整示例

if (val.player.checkItemCooldown('fireball', 5000)) {
  val.player.setItemCooldown('fireball')
  val.item.damage(10)
}

使用限制

  • Aria 脚本不能直接取消 Bukkit 事件。需要取消事件时,在动作配置键末尾添加 !!;Behavior 则可以返回 cancelEvent
  • Overture 不会向脚本注入 Bukkit Event、self 或 Behavior variables。
  • data(key, value) 只适合写入数字、字符串和布尔值,不支持复杂 List 或 Map。