搜索

开发与构建

兼容基线、分层结构、构建命令和验证记录。

兼容基线

  • 服务端: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

脚本会:

  1. 检查 Java 25;
  2. 将缺少的编译依赖下载到 lib/;
  3. 使用精确白名单类路径编译,避免旧版 Paper API 污染;
  4. 执行时间逻辑回归测试;
  5. 生成 target/LichQian-1.1.0.jar。

成品 Jar 只包含 LichQian 自身类、plugin.yml 和 config.yml,不会打包 Paper、Vault、PlaceholderAPI 或 Adventure。

验证记录

  1. Java 25 编译通过。
  2. 时间回归测试 TIME_SUPPORT_SELF_TEST=PASS。
  3. config.yml 和 plugin.yml 已由 Paper 26.1.2 实际解析。
  4. Paper 26.1.2 Build 74 真实启动中,Vault 1.7.3、XConomy 2.26.3、PlaceholderAPI 2.11.7 与 LichQian 1.1.0 均成功启用。
  5. 成品类文件版本为 69(Java 25),未发现第三方依赖类被打入 Jar。