GUI 与动画
GUI 字符布局
TreasuresLite 使用字符布局系统定义开箱界面。每个字符映射到一个槽位,通过 layout 定义界面结构,通过 claim.key 和 icons 定义各字符对应的内容。
默认配置示例
title: "奖励箱"
layout:
- '#########'
- ' 1111111 '
- ' 1111111 '
- ' 1111111 '
- ' 1111111 '
- '#########'
layout中的每一行对应 GUI 的一行(每行 9 个字符 = 9 个槽位)- 行数决定 GUI 的大小(上例为 6 行 = 54 格)
- 空格表示空槽位
1对应claim.key: 1,即可领取奖励的槽位#对应icons中定义的装饰图标
icons 装饰图标
icons:
'#':
material: "gray glass stane pane"
name: " "
actions:
left: |-
tell "点nm呢"
right: |-
tell "拿不了"
icons 中的每个键对应 layout 中的一个字符。支持配置:
| 配置项 | 说明 |
|---|---|
material | 物品材质,支持所有物品源格式 |
name | 显示名称 |
lore | 显示 Lore |
amount | 显示数量 |
actions | 点击动作(Kether 脚本),支持 left、right、all |
开箱动画
插件通过 NMS 发包实现箱子的打开/关闭动画:
- 玩家右键点击虚拟宝箱
- 发送箱子打开动画数据包(箱盖打开效果)
- 打开 GUI 界面供玩家领取奖励
- 关闭 GUI 时发送箱子关闭动画数据包
- 延迟 15 tick 后还原方块
这个过程是自动的,不需要额外配置。
事件脚本
宝箱配置文件中的 events 节点可以绑定各阶段的 Kether 脚本:
events:
open: |-
tell "打开了闸总"
close: |-
tsl-claim
claim: |-
tell "领取了个什么东西啊"
spawn: |-
tell inline "{{ &chest-world }}位于{{ &chest-x }},{{ &chest-y }},{{ &chest-z }} 出现了一个神秘宝箱"
| 事件 | 触发时机 | 说明 |
|---|---|---|
open | 玩家右键打开宝箱时 | 在钥匙检查通过后、GUI 打开前执行。可通过 tsl-cancel 取消 |
close | GUI 关闭时 | 常用于自动领取未领取的奖励(tsl-claim) |
claim | 玩家点击领取单个奖励时 | 可用 &amount 获取物品数量 |
spawn | 宝箱发包显示时 | 可用 &chest-world、&chest-x、&chest-y、&chest-z 获取坐标 |
全息文字
警告
全息文字功能依赖 Adyeshach 2.0,目前暂未实现。
配置预留如下:
hologram:
offsetX: 0
offsetY: 0
offsetZ: 0
update: 20
text:
- '这是个全息'
- '这是个全息'
- '这是个全息'
背包锁定
开启 lock_inventory 后,玩家在开箱 GUI 中无法点击自己背包内的物品:
settings:
lock_inventory: true