跳到主要内容

宝箱长什么样

这一页讲怎么把默认的普通箱子换成别的外观。所有配置都写在宝箱文件的 settings.block 下面。

最简单的写法​

只想换个方块类型的话,一行就够:

settings:
block: "TRAPPED_CHEST"

常用的几个:

写法效果有开合动画
"CHEST"普通箱子有
"TRAPPED_CHEST"陷阱箱(外观和普通箱子几乎一样)有
"ENDER_CHEST"末影箱(黑色带星光)有
"BARREL"木桶(1.14+)没有
"SHULKER_BOX"潜影盒没有

材质名用大写、单词间加下划线,和游戏内部的名字一致。

注意 def.yml 里的一个坑

默认的 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"

可用的材质来源字段,三个选一个:

字段填什么
textureBase64 编码的材质数据
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 的自定义方块底层是用原版方块(音符盒、蘑菇柄之类)配合资源包实现的,插件会自动读取它注册的方块数据。

如果没装 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

开了之后玩家在宝箱界面里点不动自己背包里的东西,防止误操作或者利用界面搬东西。

这个选项会让 virtualize_ui 失效

config.yml 里的 view.virtualize_ui 只在宝箱没开 lock_inventory 的时候才生效。两个都开的话,以 lock_inventory 为准。