钥匙系统
概述
TreasuresLite 使用物品特征匹配作为钥匙系统。玩家需要手持符合条件的物品才能打开宝箱。钥匙检查基于手持物品的材质、名称、Lore、CustomModelData 等属性进行多维度匹配。
这不是虚拟钥匙,而是直接检查玩家手上的物品是否满足条件。
配置位置
钥匙配置在宝箱文件的 settings.open_key 节点下:
settings:
open_key:
deny: |-
tell inline "没有足够的钥匙 {{ &has_amount }} / 10"
key:
# 特征检查
- check:
# 材质完全匹配
material: "paper"
# 名字判断包含
name: "钥匙"
# lore 判断包含
lore:
- "这是个钥匙"
custom_model_data: 1
amount: 10
# 是否消耗,默认 true
consume: true
- check:
custom_model_data: 10086
consume: false
配置说明
deny
当玩家手持物品不满足任何钥匙条件时执行的 Kether 脚本。可用变量:
| 变量 | 说明 |
|---|---|
&has_amount | 玩家手持物品的数量 |
&consume | 是否需要消耗 |
key 列表
key 是一个列表,每个条目定义一种可接受的钥匙。玩家手持物品只要匹配其中任意一个条目即可打开宝箱。
check 检查条件
| 配置项 | 匹配方式 | 说明 |
|---|---|---|
material | 完全匹配 | 物品材质,如 paper、diamond |
name | 包含匹配 | 物品名称中包含指定文本即可 |
lore | 包含匹配 | 物品 Lore 中任意一行包含列表中任意一项即可 |
custom_model_data | 完全匹配 | CustomModelData 值 |
amount | 数量检查 | 需要的最低数量,默认 1 |
所有 check 条件都是可选的,只填写需要检查的项即可。填写的所有条件必须同时满足。
consume
是否消耗钥匙物品,默认 true。设为 false 则只检查不消耗。
不配置钥匙
如果宝箱文件中不写 settings.open_key 节点,则该宝箱无需钥匙即可直接打开。
多钥匙示例
可以配置多种钥匙,满足任意一种即可开箱:
settings:
open_key:
deny: |-
tell "你没有合适的钥匙"
key:
# 钥匙方案一:10 个纸质钥匙,消耗
- check:
material: "paper"
name: "钥匙"
amount: 10
consume: true
# 钥匙方案二:VIP 令牌,不消耗
- check:
custom_model_data: 10086
consume: false