跳到主要内容

标签解析器

标签解析器(Tag Resolver) 在 Ratziel 中用于解析配置文件中标签用法。

它们允许您在配置中使用动态内容,如变量替换、数据引用、脚本执行等。

标签用法

标签使用大括号 {} 包围,基本用法为:

{解析器名称:参数1:参数2:...}

示例:

name: "玩家 {papi:player_name} 的物品"
lore:
- "击杀数: {data:kill_count}"
...

解析器类型

Ratziel 提供两种类型的标签解析器:

  • 静态解析器: 在物品生成时解析一次,结果固定不变。
  • 动态解析器: 在物品显示时实时解析,内容可以动态变化。

解析器列表

PAPI 变量解析器

用于解析 PlaceholderAPI 的变量。

别名: papi

用法:

  • {papi:变量名}
  • {papi:变量名:变量参数1:变量参数2:...}

数据解析器

数据解析器,用于访问物品的数据层内容。

别名: data

用法: {data:数据名称:默认值}

示例:

KillCounter:
meta:
name: "击杀计数器 (击杀: {dynamic:data:kill_count:0})"
data:
kill_count: 0
action:
onKill: 'item.set("kill_count", (item.get("kill_count") || 0) + 1)'

计算解析器

计算解析器,用于访问计算层和属性层的内容。

别名: computecomputationpropertiesprop

用法: {compute:变量名称}

示例:

MagicWeapon:
meta:
name: "魔法武器 (攻击力: {computation:attack_power})"
computation:
attack_power: |-
level = item.get("level") || 1
return 10 + (level * 5)
data:
level: 1

动态解析器

用于标记需要动态解析的内容。

别名: dynamic

用法: {dynamic:解析器名称:参数}

示例:

LiveStats:
meta:
name: "实时状态"
lore:
- "当前血量: {dynamic:data:health}"
- "当前法力: {dynamic:data:mana}"
- "在线时间: {dynamic:computation:online_time}"

脚本解析器

直接使用脚本显示信息。

别名: script

用法:

  • {script:脚本内容}
  • {script:语言:脚本内容}

示例:

RandomItem:
meta:
name: "随机物品"
lore:
- "随机数: {script:Math.floor(Math.random() * 100)}"
- "当前时间: {script:js:new Date().toLocaleString()}"
- "玩家名称: {script:player.getName()}"

模板解析器 (继承解析器)

继承解析器,用于引用其他物品配置的内容。

别名: inheritextend

用法:

  • {inherit:模板ID:路径}
  • {inherit:模板ID.路径}