世界优化器

世界优化器

一个Minecraft Forge模组,能在检测到模组变更时自动优化世界,专为解决ReplayMod方块ID不匹配问题而设计。

管理

WorldOptimiser

自动世界优化,兼容 ReplayMod

一个 Minecraft Forge 模组,在检测到模组变动时自动优化世界,专为解决 ReplayMod 方块 ID 不匹配问题而设计。

🎯 目的

本模组旨在解决 ReforgedPlay Mod(版本 0.3.1)的一个关键问题:添加或移除包含方块、模型或纹理的模组会导致 ReplayMod 在回放录像中显示错误的纹理和模型。

问题所在

  • 当世界在固定模组集合下生成时,ReplayMod 运行完美
  • 当你添加或移除包含方块、模型或纹理的模组时,问题就会出现
  • 这会改变引用 ID 列表,导致 ReplayMod 中的方块 ID 混乱
  • 以往的手动修复方法:下载世界 → 在单人游戏中打开 → 手动优化 → 重新上传
  • 这种方式既繁琐又冒险,尤其是在需要即时更换模组的服务器环境中

解决方案

WorldOptimiser 会自动检测模组列表变动,并触发你通常需要在单人游戏中通过“优化世界”按钮手动执行的世界优化流程。这会重新校准 ID 映射,修复 ReplayMod 兼容性问题。

✨ 功能特性

  • 自动检测:监控模组的添加、移除和版本变更
  • 智能优化:仅在检测到实际模组变动时运行
  • 服务端支持:适用于专用服务器和集成服务器
  • 非侵入式:在世界启动期间无缝在后台运行
  • 回放安全:确保模组变动后你的 ReplayMod 录像能正确显示

🔧 工作原理

  1. 启动检查:世界加载时,模组从 level.dat 中读取已保存的模组列表
  2. 对比:将已保存的模组列表与当前加载的模组进行比对
  3. 检测:识别任何添加、移除或版本变更
  4. 优化:如果检测到变动,自动运行世界优化流程
  5. 完成:世界以更新后的 ID 映射正常启动

📋 要求

  • Minecraft:1.20.1
  • Forge:47.4.0 或更高版本
  • Java:17+

📦 安装

  1. 从发布页面下载最新版本
  2. 将 worldoptimiser-1.0.jar 放入你的 mods 文件夹
  3. 启动你的服务器/世界——模组会在需要时自动处理优化

🎮 使用方法

无需配置!模组自动运行:

  • 安装模组
  • 根据需要添加/移除其他模组
  • 启动你的世界——如果检测到模组变动,优化会自动进行
  • 你的 ReplayMod 录像现在将正确显示

📝 日志输出

当模组检测到变动时,你会看到类似以下的消息:

[Server thread/WARN] [worldoptimiser]: Detected new mods world will be optimised on startup
[Server thread/INFO] [worldoptimiser/worldupgrader]: World will be optimised it may take a while, please wait...
[Server thread/INFO] [worldoptimiser/worldupgrader]: World optimisation complete

🐛 已知问题

  • 对于大型世界,世界优化可能需要一些时间
  • 该过程会阻塞世界启动直至完成(这对于正确的 ID 重映射是必要的)

👨‍💻 开发目的

本模组专为 @protagnst 创建,以解决其内容创作工作流中的 ReplayMod 兼容性问题。

💼 定制开发

需要针对你特定用例的定制模组解决方案?我可承接定制 Minecraft 模组开发及类似技术解决方案。

联系方式:可承接定制开发工作——如果你有类似问题需要解决,欢迎联系!

📄 技术细节

  • 模组 ID:worldoptimiser
  • 版本:1.0
  • 作者:Pelotrio
  • 许可:保留所有权利

兼容性说明

此问题特定于 Forge 1.20.1 上的 ReforgedPlay Mod v0.3.1。之前的版本(Forge 1.16.5 和 Fabric 版本)会自动处理 ID 变动,但此功能在 1.20.1 Forge 版本中丢失了。

🔧 致开发者

本模组挂接到 Forge 的模组加载事件和世界启动流程,以:

  • 通过 ModMismatchEvent 检测模组列表变动
  • 读取/对比存储在世界 NBT 数据中的模组列表
  • 在需要时触发 Minecraft 内置的 WorldUpgrader
  • 确保与 ReplayMod 的方块 ID 系统兼容

本模组解决了 ReplayMod 兼容性的一个特定技术问题。如果你在模组变动后遇到类似的方块 ID 或纹理映射问题,此工具可自动执行以往需要手动完成的优化流程。