开发与构建
兼容基线、分层结构、构建命令和验证记录。
兼容基线
- 服务端:Paper 26.1.2(API
26.1.2.build.74-stable) - Java:25
- 必需前置:Vault + 任意 Vault Economy Provider
- 可选前置:PlaceholderAPI 2.11.7+
- 业务代码仅使用 Bukkit 通用接口;MiniMessage 由 Paper 运行环境提供
1.1.0 关键修复
- 每日次数写入
plugins/LichQian/data.yml,重启服务器不再清零。 - 每日统计使用
time.zone和time.daily_reset,不再依赖操作系统默认时区。 - 新增剩余时间和准确重置时间显示。
- 药水持续时间支持
20t、30s、5m、2h、1d和永久;旧版纯数字继续按秒解析。 - 修复空签池先扣钱、异常不退款、快速重复点击、权重溢出和背包溢出物品丢失问题。
- 配置升级只补全缺失节点,不覆盖已有自定义值;格式错误时拒绝重载并保留原文件。
分层结构
| 层 | 包 | 职责 |
|---|---|---|
| 主类 | me.laoli.lottery |
生命周期和依赖注入 |
| 指令层 | command / command.subcommand |
主命令路由、子命令执行、Tab 补全 |
| 配置层 | config |
默认值补全、校验、重载、强类型配置 |
| 监听器层 | listener |
GUI 点击和拖拽事件 |
| 业务层 | core |
抽签、每日限制、奖励发放 |
| 数据层 | data |
玩家次数和上次签文持久化 |
| 工具层 | util |
MiniMessage、权限检查、时长和重置周期计算 |
| API 层 | economy / papi |
Vault 与 PlaceholderAPI 适配 |
构建
在 PowerShell 中执行:
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\build.ps1
脚本会:
- 检查 Java 25;
- 将缺少的编译依赖下载到
lib/; - 使用精确白名单类路径编译,避免旧版 Paper API 污染;
- 执行时间逻辑回归测试;
- 生成
target/LichQian-1.1.0.jar。
成品 Jar 只包含 LichQian 自身类、plugin.yml 和 config.yml,不会打包 Paper、Vault、PlaceholderAPI 或 Adventure。
验证记录
- Java 25 编译通过。
- 时间回归测试
TIME_SUPPORT_SELF_TEST=PASS。 config.yml和plugin.yml已由 Paper 26.1.2 实际解析。- Paper 26.1.2 Build 74 真实启动中,Vault 1.7.3、XConomy 2.26.3、PlaceholderAPI 2.11.7 与 LichQian 1.1.0 均成功启用。
- 成品类文件版本为 69(Java 25),未发现第三方依赖类被打入 Jar。