搜索

0.27.9 商城、飞行加速与回收

道具商城独立余额提示与安全退款、飞行属性和骑乘疾跑加速,以及命令、GUI、信号棒的统一回收反馈。

更新日期:2026-09-02;对应插件版本:0.27.9-SNAPSHOT。

本版修复道具商城余额不足提示错称“无法购买宠物”、飞行宠物与飞行骑乘无法正确获得加速,以及回收操作偶发没有反馈的问题。升级只补新增配置节点与中文注释,已有价格、货币 ID、宠物数值和管理员自定义文本不会覆盖。

道具商城

  • 道具余额不足改用独立的 item-shop-insufficient-funds,默认显示“余额不足,无法购买该道具”,宠物商城继续使用原来的 shop-insufficient-funds。
  • 扣款后的物品发放改为可观察的实体任务。玩家实体在任务已受理、尚未执行时退出或退休,购买 Future 也会结束并执行全额退款,不再永久等待或只扣款不发货。
  • 捕捉球重载期间失效、CraftEngine 物品生成失败、调度拒绝与调度异常仍走原有退款保护。

messages.yml 新增:

# 宠物道具商城余额不足;与宠物商城分开,避免误称无法购买宠物。
item-shop-insufficient-funds: "<red>余额不足,无法购买该道具。</red>"

飞行速度与骑乘疾跑

  • 宠物基础速度、敏捷成长和技能速度加成现在同时写入实体支持的 MOVEMENT_SPEED 与 FLYING_SPEED。鹦鹉等拥有独立飞行速度属性的实体不再漏掉加速;不支持 FLYING_SPEED 的实体会安全跳过。
  • 骑乘控制每 tick 同时读取疾跑键。按住疾跑时,地面和飞行骑乘均按 riding-sprint-multiplier 放大水平速度;飞行俯仰产生的升降速度使用同一倍率,避免只横向加速。
  • pet-types.yml -> defaults.behavior.riding-sprint-multiplier 默认 1.5,允许范围 1.0-3.0。单宠物文件可在自己的 behavior 下覆盖,例如:
behavior:
  riding-speed: 0.40
  # 按住疾跑键后速度为 0.40 × 1.75。
  riding-sprint-multiplier: 1.75

旧宠物配置缺少该项时自动继承并补全默认值;已有 riding-speed、跳跃、AI、模型与骑乘类型保持不变。

宠物回收

  • /lipet store、管理 GUI 与信号棒回收共用同一个反馈服务,不再分别使用无法确认执行结果的消息调度。
  • 回收超过 100 tick(正常 TPS 下约 5 秒)会提示一次“正在保存并回收”,不会取消数据库写入、提前释放操作锁或重复移除实体。将 pet-store-pending 设为空字符串可关闭等待提示。
  • 结果消息的调度拒绝、受理后退休、空结果和文本解析异常都会记录接收者 UUID,并使用独立反馈异常文本;提示异常不再被误判为数据库保存失败。
  • 回收仍保持原有安全边界:必须先确认 STORED 写入成功,再移除实体和活动会话;保存失败时保留召唤状态。

新增消息:

pet-store-pending: "<yellow>正在保存并回收宠物,请稍候,无需重复操作。</yellow>"
pet-store-feedback-failed: "<yellow>宠物回收结果提示异常,请重新打开仓库确认状态,并联系管理员查看后台日志。</yellow>"

升级步骤

  1. 停服,备份 plugins/LiPet/ 和 SQLite/MySQL 数据。
  2. 替换为 LiPet-0.27.9-SNAPSHOT.jar,确保插件目录只保留一个 LiPet Jar,然后启动服务器。
  3. 首次启动会补全上述消息和疾跑倍率;已有管理员值与注释保留。
  4. 使用道具商城制造余额不足,确认提示为“道具”;骑乘飞行宠物按住疾跑键,确认速度提升;连续执行命令、GUI 与信号棒回收。

验证结果

默认兼容构建(Paper 1.21.11 API、Java 21 字节码)与 Paper 26.2 Profile 各通过 312 项自动测试,失败、错误和跳过均为 0。新增测试覆盖道具发放任务受理后退休并全额退款、回收等待/完成/异常反馈、反馈任务退休与飞行疾跑倍率。

最终成品:LiPet-0.27.9-SNAPSHOT.jar;大小:858889 字节;SHA-256:C73889FC79185C8FE7B05AD9DB21ABF590652A485BFCB8A81B327358C74CDE95。Jar 只包含 LiPet 业务代码,主类为 Java 21 class 版本 65,外部依赖未打入成品。

同一最终 Jar 在 Paper 26.1.2 Build 70 与 Paper 26.2 Build 111 上使用真实 SQLite 通过运行探针:

  • 旧 messages.yml 自动补齐三个新增消息,旧 pet-types.yml 自动补齐 riding-sprint-multiplier: 1.5。
  • 鹦鹉 FLYING_SPEED 成功写入 0.47;飞行骑乘基础速度 0.4 在 1.5 倍疾跑下得到水平 0.6,俯仰升降同步加速。
  • 每台服务端连续 8 轮创建 ACTIVE 宠物并执行真实回收,均返回 STORED、移除原版实体、清除活动会话,随后安全停服。

当前环境没有真人网络客户端和 Folia 实服,因此键位手感、客户端画面与 Folia 多区域运行仍需在目标服最终验收;服务端输入计算、实体属性、SQLite 状态链和 Paper 兼容性已经验证。