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

459 lines
9.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 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 执行构建
命令:
```bash
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 权限验证
无权限玩家执行:
```text
/att
/repair repair
/myitems reload
```
通过标准:
- 无权限玩家不能执行管理功能。
- 控制台无异常。
#### 6.2 属性写入验证
管理员手持普通物品,依次执行:
```text
/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 槽位写入验证
执行:
```text
/att slot MAIN_HAND
/att slot OFF_HAND
/att slot HELMET
/att slot CHESTPLATE
/att slot LEGGINGS
/att slot BOOTS
```
通过标准:
- 每个合法槽位都能写入。
- 物品放入对应槽位时属性生效。
- 放入不匹配槽位时属性不生效。
#### 6.4 耐久写入验证
执行:
```text
/att durability 10 10
```
通过标准:
- Lore 显示耐久。
- 当前耐久和最大耐久一致。
- 无异常。
### 7. 物品模板验证
#### 7.1 重载模板
执行:
```text
/myitems reload
```
通过标准:
- 控制台显示模板加载数量。
- 坏模板只跳过自身。
- 好模板仍可生成。
#### 7.2 生成模板物品
执行:
```text
/myitems give xygjx
```
通过标准:
- 玩家获得物品。
- 名称、Lore、品质、属性、耐久均正确。
- 单值属性配置可正常解析。
- 区间属性配置可正常随机。
### 8. 属性面板验证
执行:
```text
/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 修复命令
执行:
```text
/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. 投入使用判定
允许投入使用必须同时满足:
- 构建验证通过。
- 服务端启动验证通过。
- 命令验证通过。
- 属性面板验证通过。
- 战斗属性验证通过。
- 耐久系统验证通过。
- 重载与缓存验证通过。
- 无高风险控制台异常。
若任一核心战斗属性未通过,结论为不允许投入使用。