🔥KaFurnace🔥- 云熔炉插件 | GUI界面 | 支持多种熔炉 | 离线熔炼 | 升级熔炉 | 多槽位  [1.16.5+]

原创 开源 工具 🔥KaFurnace🔥- 云熔炉插件 | GUI界面 | 支持多种熔炉 | 离线熔炼 | 升级熔炉 | 多槽位 [1.16.5+] 1.0.3

请登录后获取
[MD] # KaFurnace v1.0.3 更新日志 --- ### 跨服同步:玩家数据租约 - 跨服模式新增基于 MySQL `GET_LOCK`/`RELEASE_LOCK` 的玩家数据租约:同一玩家同一时刻只被一个子服读写,不新增数据表结构。 - 玩家登录/转入改为异步获取租约(250ms 起指数退避至 2 秒)后再加载熔炉数据,等待与读库均不占用服务器主线程。 - 租约被其他子服持有时,`/kf` 主菜单和快捷开炉入口会提示“正在同步你的熔炉数据”,暂不开放界面,避免读到旧数据。 - 玩家退出/转出改为先异步写回并等数据库确认,确认成功后才释放租约;写回失败会保留内存状态与租约,防止其他子服用旧快照覆盖。 - 同一玩家的登录加载与退出写回按先后顺序排队执行,快速重连不会越过尚未完成的退出写回。 - 启动校验:`cross-server.enabled: true` 但 `database.type` 不是 `mysql` 时直接拒绝启用并给出原因,SQLite 不支持跨进程租约。 - 管理员关闭离线玩家的代管界面后,改为异步结算写回并释放该玩家租约,避免离线玩家长期占用锁。 - 关服时先等待未完成的玩家写回(最长 30 秒),再刷新最终快照并关闭租约连接。 ### 第三方配方兼容(修复) - 修复第三方插件(如 CraftEngine)注册的熔炉/高炉/烟熏配方不生效的问题。 - 原因:旧版只在插件启用时用 `Bukkit.recipeIterator()` 快照一次配方表,CraftEngine 等插件在其 delayedLoad 阶段才注册配方,通常晚于 KaFurnace,导致这些配方从未进入索引。 - 配方索引现支持运行期重建: - `recipe-refresh-seconds`(默认 `30`)周期性检查配方集合变化,仅在变化时重建; - `recipe-refresh-initial-ticks`(默认 `100`)控制首次刷新延迟,用于覆盖 delayedLoad 阶段注册的配方; - 查找未命中时按 5 秒节流自动重建一次索引,放入新物品即可立即识别新配方; - 索引改为按输入材质建立候选表并保留注册顺序,命中时只匹配相关配方,重建与查找成本更低。 - 索引发生变化时控制台输出 `已刷新配方索引,当前共 N 个烹饪配方`。 ### 配置与语言 - 新增 `recipe-refresh-seconds`(默认 `30`)与 `recipe-refresh-initial-ticks`(默认 `100`)。 - `config-version` 仍为 `4`:已部署服务器不会自动补入上述两个键,缺失时按默认值 `30`/`100` 生效,如需调整请手动添加到 `config.yml` 顶层。 - 新增语言键 `command.data-loading`(数据同步中提示)与 `plugin.recipes-refreshed`(配方索引刷新日志),现有语言文件会自动补键。 [/MD]
[MD] ### 可读倒计时显示优化 - `countdown_format` 调整为 `day`、`hour`、`minute`、`second` 四个单位文本: ```yaml countdown_format: day: 天 hour: 时 minute: 分 second: 秒 ``` - 数值由插件自动添加且不补前导零,例如 `1时` 不再显示为 `01时`。 - 四个配置值均按普通文字处理,不再解析 `d`、`H`、`m`、`s` 等格式字符;例如 `day: " days"` 会直接显示为 `1 days`。 - 天、时、分、秒中数值为 `0` 的区间会被省略:`1天1时1分1秒`、`1时`、`1分1秒` 和 `1分` 均可按实际时长显示。 - 完全为零时使用 `second` 单位显示 `0秒`,避免 UI 或 PlaceholderAPI 返回空文本。 - 剩余时间继续向上取整到整数秒,已用时间和总时间继续向下取整。 [/MD]
后退
顶部 底部