搜索

0.29.9 重启残留与归属提示

实体加载延迟核对、交互补清理旧残留,保护未完成召唤并保留存档主人。

修复范围

重启后仍能从列表召唤,但点击世界中的旧宠物提示“不是自己的宠物”,不等于数据库主人被修改。旧实现把“找不到当前活动会话”与“会话属于其他玩家”合并处理,残留实体也会收到不认主提示。本版修正这条判断,并加固加载对账。

  • 区块实体加载后等待实体自己的下一 tick,再核对当前活动会话,避免在加载回调中操作尚未注册完成的实体;Folia 下仍使用实体所属区域调度。
  • 已存在活动会话的实体恢复原有主人与运行状态;没有会话的旧实体按残留清理,不按点击者、名字或模型认领。
  • 普通右键遇到缺失会话的宠物时,取消交互并提示实体暂不可用,同时补做残留清理。数据库档案和主人 UUID 不改动。
  • 当前运行期已创建、但尚在等待首次外观保存的召唤实体及其名牌不会被当作旧残留删除。
  • 同一 pet_id 的旧残留不能顶替新召唤实体;其他玩家的骑乘与喂食权限检查保持不变。

本次针对已确认的会话缺失误报和加载时序加固。尚未取得客户现场重启日志,不能认定所有“不认主”反馈都由同一原因造成。

配置

新增消息自动补全到 messages.yml,不覆盖已有自定义消息:

# 实体加载中或上次运行残留时显示;MiniMessage 文本,可自定义。
pet-entity-unavailable: "<yellow>此宠物实体暂不可用,请稍后重试;若刚重启服务器,请从宠物列表重新召唤。</yellow>"

重启后通过宠物列表重新召唤。不要删除数据库,也不需要重抓宠物;此补丁不自动把陌生实体绑定给点击者。

验证与更新

默认 API 与 Paper 26.2 API 构建各通过 480 项测试,无失败、错误或跳过。隔离 Paper 26.2 与 Folia 26.2 按真实世界实体保存、正常停止、再次启动测试,并检查档案主人不变、重新召唤、晚到旧残留交互清理、未完成召唤保留和其他玩家骑乘拒绝。服务端测试不代表客户现场或真人客户端验收。

维护时正常停止 Minecraft 服务端,备份后替换旧 Jar,保留数据库与配置。启动确认 Enabling LiPet v0.29.9-SNAPSHOT。不要使用 PlugManX 热卸载;/lipet reload 不能替换已加载代码。无需关闭电脑。

保留 0.29.8 鱼类水中跟随与游泳骑乘及之前的体型、GUI、WG、监守者与 Parro 功能。