Files
AuMyItems/插件投入使用测试流程.md
2026-07-11 22:13:14 +08:00

9.6 KiB
Raw Permalink Blame History

AuMyItems 投入使用测试流程

生成时间2026-07-08 05:05:00

1. 测试目标

确认插件满足以下条件后,才允许投入使用:

  • 插件可完成 Maven 构建。
  • 服务端可正常启动并加载插件。
  • CraftEngine 依赖可被服务端识别。
  • 物品模板可加载。
  • 属性写入、读取、展示、生效链路正常。
  • 穿透、格挡、吸血语义符合当前设计。
  • 耐久扣减、破损失效、修复逻辑正常。
  • reload 不产生异常或旧数据残留。

2. 测试环境要求

  • Java21
  • 服务端Paper 1.21.11
  • 必装依赖CraftEngine 26.5.1
  • 插件版本1.0.7
  • 测试账号:至少 2 个玩家账号
  • 推荐准备:
    • 一个测试平坦世界
    • 一个普通怪物生成区
    • 一个 PVP 测试区域
    • 控制台日志实时可见

3. 构建验证

3.1 执行构建

命令:

mvn -q -DskipTests package

通过标准:

  • 命令退出码为 0。
  • 生成插件 jar。
  • 控制台无编译错误。

失败处理:

  • 如果 CraftEngine 依赖解析失败,先检查 Maven 仓库配置。
  • 如果 Maven 插件下载失败,先处理本机网络或 Maven 缓存。
  • 构建失败不得进入服务端测试。

3.2 检查插件描述文件

检查 jar 内 plugin.yml

  • version 必须是 1.0.7
  • depend 必须包含 CraftEngine
  • main 必须指向主类。

通过标准:

  • jar 内版本号与发布版本一致。
  • 没有连续构建沿用旧版本号。

3.3 检查依赖打包

检查 jar 内容:

  • 不得包含 org/sqlite/**
  • 不得包含 com/zaxxer/hikari/**
  • 不得包含 net/momirealms/craftengine/**

通过标准:

  • 上述类路径均不存在。

4. 服务端启动验证

4.1 安装插件

将以下插件放入服务端插件目录:

  • CraftEngine
  • AuMyItems

启动服务端。

通过标准:

  • 控制台无红色报错。
  • AuMyItems 正常启用。
  • CraftEngine 在 AuMyItems 前完成加载。
  • 控制台出现物品模板加载数量日志。

失败处理:

  • 若提示缺少 CraftEngine检查依赖插件文件名、版本和加载顺序。
  • 若模板加载报错,记录具体物品 ID 和原因。

5. 配置加载验证

5.1 默认配置生成

删除测试服中的旧插件数据目录后启动一次。

通过标准:

  • 默认配置文件生成。
  • 默认语言文件生成。
  • 默认物品模板生成。
  • 无启动异常。

5.2 旧配置兼容

使用旧版本配置启动。

通过标准:

  • 缺失新配置不会导致插件无法启动。
  • 模板错误只跳过单个物品,不影响其他模板加载。
  • 控制台能明确提示错误物品和原因。

6. 命令验证

6.1 权限验证

无权限玩家执行:

/att
/repair repair
/myitems reload

通过标准:

  • 无权限玩家不能执行管理功能。
  • 控制台无异常。

6.2 属性写入验证

管理员手持普通物品,依次执行:

/att stats PHYSICAL_ATTACK 100
/att stats PHYSICAL_DEFENSE 50
/att stats PVE_ATTACK 30
/att stats PVE_DEFENSE 20
/att stats MAX_HEALTH_BONUS 40
/att stats CRIT_CHANCE 100
/att stats CRIT_DAMAGE 100
/att stats HIT_CHANCE 100
/att stats DODGE_CHANCE 100
/att stats PENETRATION 100
/att stats BLOCK_CHANCE 100
/att stats VAMPIRE_CHANCE 100
/att stats MOVE_SPEED 50

通过标准:

  • 每条命令返回成功提示。
  • 物品 Lore 显示对应属性。
  • 不出现“未找到节点”文案。
  • 控制台无异常。

6.3 槽位写入验证

执行:

/att slot MAIN_HAND
/att slot OFF_HAND
/att slot HELMET
/att slot CHESTPLATE
/att slot LEGGINGS
/att slot BOOTS

通过标准:

  • 每个合法槽位都能写入。
  • 物品放入对应槽位时属性生效。
  • 放入不匹配槽位时属性不生效。

6.4 耐久写入验证

执行:

/att durability 10 10

通过标准:

  • Lore 显示耐久。
  • 当前耐久和最大耐久一致。
  • 无异常。

7. 物品模板验证

7.1 重载模板

执行:

/myitems reload

通过标准:

  • 控制台显示模板加载数量。
  • 坏模板只跳过自身。
  • 好模板仍可生成。

7.2 生成模板物品

执行:

/myitems give xygjx

通过标准:

  • 玩家获得物品。
  • 名称、Lore、品质、属性、耐久均正确。
  • 单值属性配置可正常解析。
  • 区间属性配置可正常随机。

8. 属性面板验证

执行:

/myitems gui

通过标准:

  • GUI 可打开。
  • 攻击属性显示:
    • 物理攻击
    • PVE 攻击
    • 暴击概率
    • 暴击伤害
    • 命中几率
    • 护甲穿透
    • 吸血几率
  • 防御属性显示:
    • 物理防御
    • PVE 防御
    • 生命提升
    • 闪避几率
    • 格挡几率
    • 移速加成
  • 点击 GUI 不会取出展示物品。

9. 战斗属性验证

9.1 基础伤害

准备:

  • 攻击者主手武器设置 PHYSICAL_ATTACK 100
  • 目标不穿任何装备

操作:

  • 攻击目标。

通过标准:

  • 伤害明显高于无属性武器。
  • ActionBar 显示伤害数字。

9.2 防御减伤

准备:

  • 目标装备设置 PHYSICAL_DEFENSE 1000
  • 攻击者武器设置 PHYSICAL_ATTACK 100

通过标准:

  • 目标受到伤害低于无防御状态。

9.3 穿透触发

准备:

  • 攻击者武器设置 PENETRATION 100
  • 目标装备设置高额 PHYSICAL_DEFENSE

操作:

  • 攻击目标多次。

通过标准:

  • 每次都应触发穿透。
  • ActionBar 出现穿透提示。
  • 伤害应接近无防御状态,而不是按防御减伤。

9.4 格挡触发

准备:

  • 目标装备设置 BLOCK_CHANCE 100
  • 攻击者武器设置稳定攻击属性。

操作:

  • 攻击目标。

通过标准:

  • 每次都应触发格挡。
  • 目标 ActionBar 出现格挡提示。
  • 目标受到最终伤害降低约 50%。
  • 攻击者受到反伤。
  • 反伤不会造成无限递归触发。

9.5 吸血触发

准备:

  • 攻击者武器设置 VAMPIRE_CHANCE 100
  • 攻击者先损失生命值。

操作:

  • 攻击目标。

通过标准:

  • 每次都应触发吸血。
  • ActionBar 出现吸血提示。
  • 攻击者生命恢复。
  • 恢复量不超过最大生命值。

9.6 暴击触发

准备:

  • 攻击者武器设置 CRIT_CHANCE 100
  • 攻击者武器设置 CRIT_DAMAGE 100

通过标准:

  • 每次攻击都显示暴击。
  • 最终伤害高于非暴击伤害。

9.7 闪避触发

准备:

  • 目标装备设置 DODGE_CHANCE 100
  • 攻击者不设置额外命中。

通过标准:

  • 目标应频繁或稳定闪避,具体取决于命中公式钳制。
  • 闪避时事件取消,伤害为 0。

9.8 PVE 属性

准备:

  • 攻击者武器设置 PVE_ATTACK 100
  • 怪物装备或实体属性设置 PVE_DEFENSE

通过标准:

  • 玩家攻击怪物时 PVE 攻击参与计算。
  • 玩家攻击玩家时不应使用 PVE 攻击加成。

10. 耐久系统验证

10.1 攻击扣耐久

准备:

  • 主手武器设置耐久 3/3

操作:

  • 攻击实体 3 次。

通过标准:

  • 每次攻击后耐久减少。
  • 耐久归零后发送破损提示。
  • 破损后该装备属性失效。

10.2 受击扣护甲耐久

准备:

  • 护甲设置耐久 3/3

操作:

  • 让玩家受到伤害 3 次。

通过标准:

  • 护甲耐久减少。
  • 耐久归零后发送对应部位破损提示。
  • 破损后该装备属性失效。

10.3 工具挖掘扣耐久

准备:

  • 镐或斧设置耐久 3/3

操作:

  • 挖掘方块 3 次。

通过标准:

  • 工具耐久减少。
  • 耐久归零后阻止继续使用。

10.4 修复命令

执行:

/repair repair
/repair repairall
/repair repair <玩家名>
/repair repairall <玩家名>

通过标准:

  • 目标玩家为空时给出提示,不报错。
  • 指定玩家时修复目标玩家物品。
  • 修复后属性刷新。

11. 重载与缓存验证

操作:

  1. 穿戴属性装备。
  2. 打开属性面板记录属性。
  3. 执行 /myitems reload
  4. 切换装备或重新打开面板。

通过标准:

  • reload 不报错。
  • 已穿戴装备属性不丢失。
  • 新模板配置生效。
  • 玩家属性缓存能正确刷新。

12. 下线与资源释放验证

操作:

  1. 玩家穿戴属性装备。
  2. 进入战斗。
  3. 玩家退出服务器。
  4. 玩家重新进入。

通过标准:

  • 退出时缓存释放。
  • 重新进入后属性重新计算。
  • 移速和生命值不残留异常。

13. 实体属性 API 验证

使用插件内部或临时测试命令给实体写入:

  • physical_defense
  • pve_defense
  • block_chance
  • vampire_chance
  • penetration
  • move_speed

通过标准:

  • 已支持的字符串能映射到正确属性。
  • 实体死亡或区块卸载后属性缓存释放。

14. 回归检查清单

  • 构建通过。
  • plugin.yml 版本正确。
  • CraftEngine 已安装且先于本插件加载。
  • 物品模板加载数量符合预期。
  • /att stats 支持所有 AttributeType。
  • Lore 不出现缺失节点。
  • GUI 属性完整显示。
  • 穿透按概率触发并无视防御。
  • 格挡按概率触发并减伤反伤。
  • 吸血按概率触发并回血。
  • 破损装备属性失效。
  • 修复命令修复目标正确。
  • reload 后无异常。
  • 玩家退出后无属性残留。
  • jar 未打入 SQLite、HikariCP、CraftEngine 类。

15. 投入使用判定

允许投入使用必须同时满足:

  • 构建验证通过。
  • 服务端启动验证通过。
  • 命令验证通过。
  • 属性面板验证通过。
  • 战斗属性验证通过。
  • 耐久系统验证通过。
  • 重载与缓存验证通过。
  • 无高风险控制台异常。

若任一核心战斗属性未通过,结论为不允许投入使用。