初始化项目

This commit is contained in:
yhy
2026-07-11 22:13:14 +08:00
commit 67461082a5
53 changed files with 5568 additions and 0 deletions

View File

@@ -0,0 +1,458 @@
## 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. 投入使用判定
允许投入使用必须同时满足:
- 构建验证通过。
- 服务端启动验证通过。
- 命令验证通过。
- 属性面板验证通过。
- 战斗属性验证通过。
- 耐久系统验证通过。
- 重载与缓存验证通过。
- 无高风险控制台异常。
若任一核心战斗属性未通过,结论为不允许投入使用。