跳到主要内容

🔢 全局变量

快速入门

全局变量是一段可复用的文本。定义后可以在物品名称、描述、消息、GUI 和全息图等位置引用;修改变量时,所有引用也会同步更新。

第一步:在 global_variables 下定义变量:

global_variables:
rare_tag: "<!i><bold><#FF8C00>[RARE]</#FF8C00></bold>"

第二步:使用 <global:id> 标签引用变量:

items:
default:topaz_sword:
material: diamond_sword
data:
item_name: "<global:rare_tag> 黄玉剑"

解析文本时,<global:rare_tag> 会被替换为变量内容。


配置

全局变量写在 global_variables 节点下,每项都是键值对:

global_variables:
rare_tag: "<!i><bold><#FF8C00>[RARE]</#FF8C00></bold>"
vip_prefix: "<!i><gradient:#FFD700:#FFA500>[VIP]</gradient>"
coin_icon: "<!shadow><image:default:coins>"
字段说明
Key变量的 ID,用于 <global:key>
Value要替换的 MiniMessage 内容。完全支持标签、颜色、图片和其他变量。

使用变量

基本用法

<global:id>
item_name: "<global:rare_tag> 黄玉剑"

带参数

变量支持索引参数——<arg:0><arg:1> 等——在调用处填入:

global_variables:
owner_item: "<!i><#FF8C00><arg:0>的<arg:1>"
# 在 ID 后面传参,用冒号分隔
item_name: "<global:owner_item:'<arg:player.name>':'<lang:item.default.topaz_rod>'>"

这里 <arg:0> 会变成玩家名,<arg:1> 会变成翻译后的物品名。参数本身也会被当作 MiniMessage 解析,所以可以嵌套标签。

在其他插件中使用

全局变量工作在数据包层面,因此任何通过 CraftEngine 拦截的数据包发送文本的插件都能用:

# 其他插件的全息图配置
line: "<global:coin_icon> 我的金币:%vault_eco_balance%"
提示

数据包层面的替换需要在 config.ymlnetwork.intercept-packets 中启用对应的拦截器。