宝箱长什么样
这一页讲怎么把默认的普通箱子换成别的外观。所有配置都写在宝箱文件的 settings.block 下面。
最简单的写法
只想换个方块类型的话,一行就够:
settings:
block: "TRAPPED_CHEST"
常用的几个:
| 写法 | 效果 | 有开合动画 |
|---|---|---|
"CHEST" | 普通箱子 | 有 |
"TRAPPED_CHEST" | 陷阱箱(外观和普通箱子几乎一样) | 有 |
"ENDER_CHEST" | 末影箱(黑色带星光) | 有 |
"BARREL" | 木桶(1.14+) | 没有 |
"SHULKER_BOX" | 潜影盒 | 没有 |
材质名用大写、单词间加下划线,和游戏内部的名字一致。
默认的 def.yml 同时写了两个东西:
settings:
type: trapped_chest # 旧写法
block: # 新写法
material: "CHEST"
block 的优先级更高,所以实际显示的是普通箱子,不是陷阱箱。
如果你改了 type 发现没反应,就是这个原因。请改 block,type 只是为了兼容很老的配置才保留的。
详细写法
需要控制朝向之类的属性时,把 block 写成一个小节:
settings:
block:
material: "CHEST"
facing: "NORTH"
waterlogged: false
type: "SINGLE"
| 配置项 | 必填 | 可选值 | 说明 |
|---|---|---|---|
material | 是 | 方块材质名 | 方块类型 |
facing | 否 | NORTH SOUTH EAST WEST UP DOWN | 朝哪边,默认 NORTH |
waterlogged | 否 | true / false | 是否含水,只对支持的方块有效 |
type | 否 | SINGLE LEFT RIGHT | 单箱还是大箱子的左右半边 |
settings.block.facing 是这种宝箱的默认朝向,location.yml 里每个坐标最后那一段是这个具体位置的朝向。
实际显示时按坐标里写的朝向来。所以想让不同位置的宝箱朝不同方向,改 location.yml;想统一改所有位置,两边都要改。
自定义头颅
想做成宝箱造型的头颅、或者别的自定义模型,用头颅方块。
用玩家名
settings:
block: "player_head:Notch"
直接显示这个玩家的皮肤头。简单,但要求这个玩家名存在。
用 Base64 材质(最常用)
从 minecraft-heads.com 这类网站上找到你想要的头颅,复制它的 Value 值:
settings:
block: "player_head:texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTJhMmRhMmRlNjFlNWU2MmM2MjdmZTQzODdmNjM2MjdlMzUyODU5YWY3ODJmNzRlZjFlMWU5NTI5OGIifX19"
这一长串是编码后的材质数据,照抄整段,中间不要加换行或空格。
用材质 URL
settings:
block: "player_head:url:http://textures.minecraft.net/texture/a2a2da2de61e5e62c627fe4387f63627e352859af782f74ef1e1e95298b"
插件会自己转换成需要的格式。
头颅的详细写法
要同时控制朝向的话:
settings:
block:
material: "PLAYER_HEAD"
facing: "SOUTH"
texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTJhMmRhMmRlNjFlNWU2MmM2MjdmZTQzODdmNjM2MjdlMzUyODU5YWY3ODJmNzRlZjFlMWU5NTI5OGIifX19"
可用的材质来源字段,三个选一个:
| 字段 | 填什么 |
|---|---|
texture | Base64 编码的材质数据 |
texture_url | 材质的 http 地址 |
owner | 玩家名 |
同时写了 texture 和 owner 的话,用 texture。
支持的头颅类型
PLAYER_HEAD、SKELETON_SKULL、WITHER_SKELETON_SKULL、ZOMBIE_HEAD、CREEPER_HEAD、DRAGON_HEAD、PIGLIN_HEAD(需要 1.16+)。
只有 PLAYER_HEAD 支持自定义材质,其他几种就是固定长相。
带 WALL 的版本(比如 PLAYER_WALL_HEAD)会贴在方块侧面,不带的立在地上。
开合动画靠的是原版箱子专用的数据包,所以只有 CHEST、TRAPPED_CHEST、ENDER_CHEST 三种有。
头颅、木桶、自定义方块都能正常开箱、正常发奖励,只是右键的时候看不到"盖子打开"的效果。这是设计限制,不是配置问题。
CraftEngine 自定义方块
装了 CraftEngine 插件的话,可以直接用它的方块:
settings:
block: "craftengine:custom_chest"
也能简写:
settings:
block: "ce:my_block_id"
需要控制朝向就用详细写法:
settings:
block:
material: "craftengine:custom_chest"
facing: "SOUTH"
CraftEngine 的自定义方块底层是用原版方块(音符盒、蘑菇柄之类)配合资源包实现的,插件会自动读取它注册的方块数据。
如果没装 CraftEngine,写 ce:xxx 会被当成普通材质名解析,最后回退成普通箱子。
界面外观
前面讲的都是世界里的方块。宝箱打开后的界面外观由另外几个配置控制。
标题
title: "&6&l每日宝箱"
支持 & 颜色代码,也支持 PlaceholderAPI 变量。
常用颜色代码:&a 绿、&b 天蓝、&c 红、&e 黄、&6 金、&7 灰、&f 白、&l 加粗。
界面大小和布局
layout:
- '#########'
- ' 1111111 '
- '#########'
每行必须是 9 个字符,几行就是几行的界面(最多 6 行)。
- 空格:留空,玩家看到的是空格子
1:奖励槽位(由claim.key: 1指定)#:装饰图标(由icons里的'#'定义)
字符可以随便换,比如你想用 X 表示装饰:
layout:
- 'XXXXXXXXX'
- ' AAAAAAA '
- 'XXXXXXXXX'
claim:
key: A
icons:
'X':
material: "BLACK_STAINED_GLASS_PANE"
name: " "
装饰图标
icons:
'#':
material: "GRAY_STAINED_GLASS_PANE"
name: " "
lore:
- "&7装饰用"
actions:
left: |-
tell "&c这个拿不走"
name: " " 里是一个空格,这是让装饰物品看起来"没有名字"的常用写法。默认配置就是这么写的,照抄即可。
只需要材质的话可以简写成一行:
icons:
'#': "GRAY_STAINED_GLASS_PANE"
icons 和奖励里的材质都是严格检查的。材质名拼错、或者用了当前版本不存在的材质,整个宝箱界面会构建失败,控制台输出 构建宝箱 XXX 的 GUI 失败,玩家右键时箱子会变回真实方块。
不确定材质名的话,游戏里对着物品按 F3+H 打开高级提示,能看到物品的内部 ID。
锁住玩家背包
settings:
lock_inventory: true
开了之后玩家在宝箱界面里点不动自己背包里的东西,防止误操作或者利用界面搬东西。
config.yml 里的 view.virtualize_ui 只在宝箱没开 lock_inventory 的时候才生效。两个都开的话,以 lock_inventory 为准。