跳到正文

GUI 与 ArcartX

鉴定、词条改造和宝石工作台各自维护两套前端:原版箱子 GUI 与 ArcartX。它们共用同一套服务端规则和事务提交,不复制玩法逻辑。

provider

三个 gui.yml 顶层都支持:

yaml
provider: auto
行为
vanilla永远打开原版箱子 GUI
arcartx必须使用 ArcartX;不可用/资源未就绪时明确拒绝,不静默回退
auto按玩家资源就绪状态选择 ArcartX,否则回退原版

“服务器安装了 ArcartX”不等于“该玩家资源已经就绪”。auto 是大多数服务器最安全的默认值。

原版 GUI 能做什么

  • 鉴定:最多 21 件批量输入,全有或全无。
  • 词条改造:装备输入、操作选择、词条/锁选择、分页、费用与结果预览、确认。
  • 宝石工作台:装备/宝石输入、孔位和操作选择、分页、费用/概率/失败后果预览、确认。

原版箱子 GUI 没有网页式连续鼠标滚动区域;SealItems 用上一页/下一页实现分页,所以完整功能不依赖滚动容器。

GUI 配置的权限边界

gui.yml 只控制 rows、槽位、图标、名称、Lore、声音、消息和 provider。它不能改变真实费用、成功率、允许操作、随机结果或限制。即使客户端展示被篡改,服务端提交仍重新校验。

图标通常支持:

yaml
material: PAPER
name: '<yellow>确认'
lore:
  - '<gray>费用:{cost}'
custom-model-data: 10001

槽位必须位于 rows * 9 范围且互不冲突。可用 placeholder 以当前默认文件和编译错误为准,未知 placeholder 会被严格拒绝。

ArcartX 模板安装

SealItems JAR 内带三份模板:

text
arcartx/ui/sealitems_identification.yml
arcartx/ui/sealitems_modification.yml
arcartx/ui/sealitems_socket.yml

启动后安装到 plugins/ArcartX/ui/。规则:

  1. 目标不存在时创建。
  2. 目标已存在时绝不覆盖。
  3. 新版本模板不同会写同名 .new
  4. 服主比较旧文件与 .new,把自定义资源和新协议字段人工合并。
  5. 验证后删除已处理 .new,再重载/重启。

不要直接把 .new 重命名覆盖旧文件而不比较,否则会丢失服主自定义。

ArcartX 安全模型

客户端模板只回传固定 intent、sessionIdviewRevision。库存内容、候选、费用、余额、概率、随机、保底和提交结果都由服务端决定。过期 view、移动物品、规则变化或重复点击会以冲突/拒绝结束。

分别重载

text
/si reload gui
/si reload modification-gui
/si reload socket-ui

显式 arcartx 时 UI 重载失败会报告不可用;auto/vanilla 仍可保持原版入口。业务规则分别用 identification、modification、sockets 重载。

排错顺序

  1. /si health 看 GUI 快照是否 published。
  2. 检查 provider 拼写。
  3. 确认 ArcartX 版本 2.5.36+。
  4. 检查三份模板和 .new
  5. 确认玩家资源包/ArcartX readiness。
  6. 临时设 provider: vanilla 验证服务端玩法链。
  7. 再切 auto,最后才用强制 arcartx

Minecraft 服务端插件使用与开发文档