0.27.10 技能书与敏捷速度
技能书持久预扣、串行升级和异常退款,以及敏捷与速度技能的统一最终速度。
修复内容
技能书升级稳定性
- 右键宠物后先为本次技能书写入
pending-skillbook-refunds.yml持久预扣记录,台账落盘失败时不会扣书或提交升级。 - 同一玩家的召唤、回收、成长和技能升级共用串行操作队列,连续右键会逐本按顺序结算,不再并发读取相同技能等级。
- MySQL 会在事务内锁定宠物记录和技能记录,群组服上同时操作同一只宠物时也不会丢失等级;SQLite 与 MySQL 都会明确拒绝不存在宠物的技能写入。
- 升级失败、技能已满级或宠物记录不存在时退还本次预扣的技能书。玩家在结算前掉线时保留退款,重新加入后发放;服务器中途重启也会从台账继续退款。
- 数据库确认成功后才消费预扣记录,并使用本次数据库重读得到的等级发送成功提示。
敏捷速度
- 修复成长属性刷新后只写回基础敏捷速度、覆盖速度技能加成的问题。
- 宠物实体的
MOVEMENT_SPEED、飞行实体的FLYING_SPEED、跟随导航和战斗追击统一使用基础速度、敏捷与速度技能共同计算的最终值。 - 宠物信息 GUI 的
<speed>与 PlaceholderAPI 的%lipet_active_speed%也读取同一最终值。 - 速度文本改为最多三位小数。默认
movement-speed: 0.25、speed-per-agility: 0.005时,敏捷 0 显示0.25,敏捷 1 显示0.255;不再都四舍五入成0.3。
配置与升级
本次没有新增必须配置的节点,也不会覆盖已有的 skills.yml、宠物类型速度、技能数值或 GUI 文本。请停服替换 Jar 后完整重启一次;/lipet reload 只能重读配置,不能把旧 Jar 的业务逻辑变成新版本。
pending-skillbook-refunds.yml 是插件自动维护的内部退款台账,不需要服主手动创建或修改。确认成功的升级会自动删除对应记录;文件为空属于正常情况。
验证
- 默认兼容构建与 Paper 26.2 Profile 各执行 315 项自动测试,失败、错误和跳过均为 0。
- 同一最终 Jar 已在 Paper 26.1.2 Build 70 与 Paper 26.2 Build 111 完成真实启动和安全关闭。两套隔离服均使用真实 SQLite 连续提交 5 次迅捷技能升级,最终等级为 5;第 6 次稳定返回满级且数据库等级仍为 5。
- 两套隔离服均生成真实狼实体并读取
MOVEMENT_SPEED:5 级迅捷时为0.35,再增加 1 点敏捷后为0.355,确认成长刷新没有覆盖技能速度加成。 - 最终成品:
LiPet-0.27.10-SNAPSHOT.jar;大小:869142字节;SHA-256:9C8D59BE8EFE3A2BC681C5DE9CC1AEBAEB19BFC0D697665CFA46F24558DA411E。Jar 只包含 LiPet 业务代码,外部依赖未打入成品。 - 当前环境没有真人客户端,GUI 的最终视觉、实际跟随速度体感和真实 Folia / MySQL 服务器仍需在目标服验收。