跳到主要内容

UI 自定义总览

Malkuth 的所有界面都可以通过 ui/ 目录下的 YAML 配置文件完全自定义,包括布局、图标、动作和模板。

每个界面配置文件由五个部分组成:titlelayouticonstemplatemessagestitleicons.nameicons.loretemplate.nametemplate.lore 在完成内部占位符替换后,还会继续执行 PlaceholderAPI 解析。

layout 布局系统

每个界面通过 layout 定义格子结构。每一行是一个由 9 个字符组成的字符串,对应箱子界面中的一行:

layout:
- '#########'
- ' ggggggg '
- ' ggggggg '
- ' ggggggg '
- ' ggggggg '
- 'P##I#S##N'
字符含义
g商品/物品槽位,由系统自动分页填充
空格空白槽位
其他字符icons 中定义的功能按钮或装饰

布局行数决定界面的行数(最多 6 行)。g 的数量决定每页显示多少商品,超出的自动分页。

icons 图标系统

每个非 g 字符在 icons 中定义其材质、名称、描述和点击动作:

icons:
'#':
material: "gray stained glass pane"
name: " "
'N':
material: "arrow"
name: '&a下一页 →'
lore:
- '&7点击翻到下一页'
actions:
left:
- 'page next'
right:
- 'page pre'

图标可配置字段

字段类型说明
material字符串物品材质(如 arrowlime wool)。配置 skull_texture / texture 后可省略
name字符串显示名称,支持颜色代码
lore字符串列表描述文本行,支持 \n 换行
skull_texture字符串自定义头颅纹理(Mojang Base64),配置后自动使用 PLAYER_HEAD
texture字符串skull_texture 的别名,两者同时存在时 skull_texture 优先
color字符串皮革盔甲颜色(格式如 255,0,0
nbtMap附加 NBT 数据
actionsMap点击动作,key 为点击类型

点击类型

常用包括 leftrightshift_leftshift_right 以及 Bukkit 原生 click 名。每个动作可配置多条指令。

template 模板变量

template 定义商品/物品在 g 槽位中的展示样式:

template:
name: '&f{name}'
lore:
- '{lore}'
- '&e价格: &f{price}'

不同界面支持的模板变量各不相同,详见各界面分组页面。

动作指令总表

所有界面通用的动作指令一览。

通用导航

指令说明
page next下一页
page pre上一页
menu back返回上一界面
menu close关闭界面
command <内容>让玩家执行命令(如 command spawn

搜索与比价

指令说明
malkuth search搜索商品
malkuth compare / malkuth compare open打开比价界面
malkuth compare search比价搜索

购买确认

指令说明
malkuth confirm buy [N]确认购买(支持可选数量参数)
malkuth confirm gift赠送给好友
malkuth confirm cart加入购物车
malkuth confirm action确认操作(玩家商店/全球市场购买)
malkuth confirm add N增加购买数量
malkuth confirm sub N减少购买数量
malkuth confirm input聊天栏输入购买数量

购物车

指令说明
malkuth cart open打开购物车
malkuth cart checkout结算购物车
malkuth cart clear清空购物车

收藏夹

指令说明
malkuth favorite open打开收藏夹

回收

指令说明
malkuth recycle all一键回收
malkuth recycle same同类回收
malkuth recycle preview预览可回收物品与预估收益
malkuth recycle rollback撤回最近一次回收

邮箱

指令说明
malkuth mailbox claim_all一键领取所有邮件

拍卖行

指令说明
malkuth auction search在拍卖行聊天栏输入搜索关键词
malkuth auction clear_search清除拍卖行搜索关键词
malkuth auction clear_seller_filter清除拍卖行卖家筛选
malkuth auction my_bids查看我的出价
malkuth auction my_items查看我的拍品
malkuth auction upload上架拍卖物品

玩家商店

指令说明
malkuth player_shop edit编辑玩家商店
malkuth player_shop upload上架商品到玩家商店
malkuth player_shop search在玩家商店中搜索商品
malkuth player_shop search_seller在玩家商店中按卖家筛选
malkuth player_shop clear_filters清空玩家商店商品搜索与卖家筛选
malkuth player_shop_browse search在玩家商店浏览列表中搜索店主

全球市场

指令说明
malkuth global_market filter打开属性筛选菜单
malkuth global_market category打开分类选择菜单
malkuth global_market sort选择价格 / 名称排序方式
malkuth global_market search打开搜索菜单
malkuth global_market search_keyword在搜索菜单中输入物品关键词
malkuth global_market search_seller在搜索菜单中输入卖家筛选
malkuth global_market clear_all_filters清除关键词、卖家、属性、分类与排序
malkuth global_market clear_seller_filter仅清除卖家筛选
malkuth global_market upload打开上架管理界面
malkuth global_market confirm在详情页购买当前挂单;若为自己的挂单则下架
malkuth global_market delist在详情页下架当前挂单
malkuth global_market favorite收藏或取消收藏当前挂单
malkuth global_market compare打开当前挂单的同类比价界面
malkuth global_market edit_price关闭 GUI 并在聊天栏输入新价格
malkuth global_market renew续期自己的全球市场挂单
malkuth global_market search_similar按当前物品名称搜索同类挂单
malkuth global_market search_source按当前物品来源搜索同类挂单

全球求购

指令说明
malkuth global_request create打开发布求购界面
malkuth global_request my_requests切换“全部 / 我的求购”筛选
malkuth global_request search在聊天栏输入求购搜索关键词
malkuth global_request clear_all_filters清除求购关键词、求购者和来源筛选
malkuth global_request sort切换求购列表排序方式
malkuth global_request submit对当前求购提交供货
malkuth global_request offers打开当前求购的供货申请列表
malkuth global_request cancel_confirm打开取消求购确认界面
malkuth global_request refresh刷新当前求购详情
malkuth global_request refresh_offers刷新供货申请列表
malkuth global_request switch_match_mode发布求购时切换匹配方式
malkuth global_request input_price发布求购时输入单价
malkuth global_request input_amount发布求购时输入数量
malkuth global_request input_note发布求购时输入备注
malkuth global_request confirm_create发布求购前进入确认
malkuth global_request confirm执行当前求购确认操作
malkuth global_request quantity_decrease / quantity_decrease_10确认界面减少数量
malkuth global_request quantity_increase / quantity_increase_10确认界面增加数量

商品编辑

指令说明
malkuth modify price修改商品价格
malkuth modify lore修改商品描述
malkuth modify name修改商品名称
malkuth modify model_data修改 Custom Model Data
malkuth modify material修改商品材质

自定义头颅 (skull_texture)

你可以通过 skull_texture 字段为任意 UI 图标设置自定义头颅材质。配置后 material 可以省略,物品会自动使用 PLAYER_HEAD

skull_texture 的值是 Mojang Base64 皮肤纹理值,可以从 Minecraft Heads 获取。在头颅详情页找到 Value 字段,复制整段 Base64 字符串即可。

也可以使用 texture 作为别名,效果完全相同。当两者同时存在时,skull_texture 优先。

icons:
'H':
skull_texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvLi4uIn19fQ=="
name: '&e自定义头颅按钮'
lore:
- '&7这是一个自定义头颅图标'
actions:
left:
- 'menu close'
提示

skull_texture 值无效(非合法 Base64 或不包含 textures.SKIN.url)或应用失败时,系统会优雅降级为普通图标显示。相同的 texture 值会基于 SHA-256 生成固定 UUID,保证头颅缓存的正确性。

所有 34 个 UI 配置文件的 icons 节点均支持此字段。

界面分组

Malkuth 当前提供 34 个 UI 配置文件,按功能分为以下分组:

分组配置文件说明
确认购买界面confirm.ymlconfirm_global_market.ymlconfirm_player_shop.yml购买确认、数量调整、赠送、购物车
全球市场界面global_market_item.ymlglobal_market_detail.ymlglobal_market_compare.ymlglobal_market_category.ymlglobal_market_search.ymlglobal_market_sort.ymlupload_global_market.yml商品列表、详情、比价、分类、搜索、排序、上架管理
全球求购界面global_request_item.ymlupload_global_request.ymlglobal_request_detail.ymlglobal_request_offers.ymlconfirm_global_request.yml求购列表、发布、详情、供货审核、操作确认
拍卖行界面auction_item.ymlauction_my_bids.ymlauction_upload.yml拍卖物品展示、出价、拍品管理
购物车与收藏夹cart.ymlfavorite.yml购物车结算、收藏管理
搜索与比价search.ymlprice_compare.yml商品搜索、跨店比价
玩家商店界面player_shop_item.ymlbrowse_player_shops.ymledit_goods.ymlupload_shop.ymlstall_model_select.yml玩家商店物品展示、浏览、编辑、上架、摆摊模型选择
邮箱与记录mailbox.ymltransaction.ymlorder.yml邮箱领取、交易记录、挂单管理
其他模板autosell_chest_upgrade.ymlgroup_buy_detail.ymlgroup_buy_list.ymlgroup_buy_record.yml自动售卖箱升级界面与团购预留模板