介绍
概览
这是将 Fabric 版的 Presence Footsteps 非官方移植到 Forge 的版本。Fabric 用户请查看原模组。
如果你在这个 Forge 版本的模组中遇到任何问题,请在这里提交问题——不要因为这个 Forge 版本的问题去打扰原 Fabric 版本的模组作者 Sollace。
为什么?
简单来说,我想在现代版本的 Minecraft 中继续享受这个模组,同时使用其他 Forge 模组。过去,这个模组使用 LiteLoader,并且可以选择在 Forge 之上运行;但自从转向 Fabric 后,这已经无法实现了。
有不少人请求移植 Forge 版本,但模组作者表示他们无意进行移植。由于该模组采用 MIT 许可证,我决定亲自完成移植,并在短短几天内尽可能制作出接近 1:1 的版本。
这一点应该很明显,但我还是要说明:请不要因为 Sollace 没有亲自进行移植而责怪他们,这是他们的决定,我对此表示尊重。我制作这个版本是因为这样做在法律上是允许的,也能让更多人享受这个模组;同时,这也让 Forge 用户在希望转向 Fabric 时更加方便,因为又多了一个同时支持两个平台的模组(甚至原 Fabric 模组与这个 Forge 移植版的配置文件也彼此兼容!)。需要注意的是,尽管 Sollace 没有参与这个移植项目,多年来他们仍然从该项目中获得了相当一部分 CurseForge 奖励计划积分。
如何?
1.19.3/1.19.2/1.18.2
以后某个时候再补充文档。相比 1.16.5 的移植流程,我的移植工作流程已经有了一些不错的改进。
1.16.5
过去我曾将各种小型 Fabric 模组移植到 Forge 供个人使用,每次移植都学到了更高效的方法。
对于 Presence Footsteps,我执行了以下流程:
1. 克隆要移植的 Fabric 模组的仓库
2. 获取 Forge MDK,设置 Mixin 配置和 Yarn2MCP 的 Yarn 映射
3. 使用 ForgeGradle 的 updateMappings 命令将 Yarn 转换为 MCP
到这一步,相当一部分工作已经完成了!
4. 使用 Linkie Discord 机器人手动将剩余的 Yarn 类名翻译为 MCP 类名,同时翻译一些 Mixin 相关内容
5. 手动将 Fabric 特有的 API 和做法翻译为 Forge 的等价物(例如独立的事件系统、独立的模组初始化方式等……)
关于此次移植的说明:
– 下次我可能会尝试使用 MojMap 作为中间翻译映射,而不是 Yarn2MCP,以减少设置时间,并在使用 ForgeGradle 的 updateMappings 或 Loom 的 migrateMappings 命令之间保持灵活性。这次我没有使用它们,因为上次我检查时,Linkie 不支持在 MojMap 和 MCP 之间进行翻译,但现在这似乎已经解决了。
– 我确实尝试过在转换为 MCP 之前直接使用 Yarn2MCP 的 Yarn 映射运行代码,但由于映射错误,遗憾的是这无法实现。
– 该模组使用了一些仅限 Fabric 的模组前置库,所以我不得不也移植所使用的部分。我在该库中有一个特定函数遇到了麻烦,它与某个 MCP 方法名相同,导致编译错误,因为代码所指的方法存在歧义(如果我没记错的话,这与 GUI 库中按钮的工具提示渲染有关)。目前,我只是禁用了那个方法调用作为变通方案。
– 我记得开发者说过他们不喜欢 MCP 映射,但有趣的是,我发现多处变量名与 MCP 类名匹配而非 Yarn 类名。也许只是从 LiteLoader 时代复用的代码?谁知道呢……
– 这不是我最优雅的解决方案——我当时很无聊,所以在 updateMappings 自动化之后仍然手动复制了库相关内容来完成部分工作。
下载
本模组适用于 26.2、26.1.2、1.21.11、1.21.10、1.21.8、1.21.5、1.21.4、1.21.1、1.20.4、1.20.2、1.20.1、1.19.4、 1.19.3、 1.19.2 以及 1.18.2 和 1.16.5。部分版本可能存在限制——详情请参阅文件的更新日志,并不时检查更新。
赞助者
感谢以下 GitHub 赞助者为我的模组开发工作捐款,他们激励我继续开发诸如这个 Presence Footsteps 非官方 Forge 移植版之类的项目:
- (目前暂无)
评论
登录后评论和评分