跳到正文

测试与兼容性

当前声明

项目声明
Java21
Bukkit API1.21
服务端Paper/兼容 Leaf 1.21,仍需按实际 build 验证
Folia不支持,folia-supported: false
SealItems0.1.0-SNAPSHOT 开发快照

软依赖编译基线见 安装前必读。编译基线不等于未来所有小版本都自动兼容。

三层验证

1. 自动质量门

powershell
./gradlew clean check --rerun-tasks

覆盖纯规则、codec、事务分支、配置编译、模块边界和 JAR 结构。它不证明真实客户端资源、其他插件组合或生产数据一定正确。

2. 真实服务端验证

在隔离 Paper/Leaf 启动候选 JAR,检查:

  • 启动到 Done,无 SealItems ERROR;
  • /si health READY;
  • 全量/分项 reload;
  • 新旧物品识别与迁移;
  • 鉴定、改造、孔位三 GUI;
  • SealAttributes 装备更新;
  • Vault/PlayerPoints 成功、余额不足、provider 变化;
  • 原版/Mythic 掉落;
  • 玩家断线、背包满、移动输入、重复点击;
  • 正常 /stop 与重启持久化。

3. 真人客户端验收

原版 GUI 可用协议客户端自动覆盖部分行为,但 ArcartX 的真实布局、字体、图标、资源包、点击区域和可读性需要真人客户端检查。autovanillaarcartx 三种 provider 都要分别试。

推荐兼容矩阵

每次发布记录精确版本,不写模糊的“最新版”:

text
Java:21.0.x
Paper/Leaf:精确 build
SealItems:commit SHA / JAR SHA-256
SealAttributes:精确版本
Vault + Economy:精确版本
PlayerPoints:精确版本
MythicMobs:精确版本
ArcartX:精确版本
客户端:1.21.x 精确版本
资源包:hash/revision

性能验证

不要只看整机 CPU 或一次 TPS。测试真实玩家装备读取、背包移动、GUI 打开/刷新/提交、掉落和迁移,并使用 JFR/采样器区分 SealItems 栈与外部插件噪声。配置编译性能与运行时性能分别测;热身后再采样;记录玩家数、事件速率和配置规模。

证据时效

一次历史测试只证明当时那个 checkout/JAR。任何代码、默认资源、依赖或构建工具改变后,都要重新运行相关门。Wiki 中的验证流程是方法,不是对未来 commit 的通过保证。

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