
重启者
一个优雅的FermiumBooter即插即用替代品,由MixinBooter支持。
Rebooter
一个优雅的 FermiumBooter 即插即用替代品,具有广泛的 API 兼容性、缓存的注解扫描和完全的自由度,由 MixinBooter 提供支持。
使用方法
对于用户,移除 FermiumBooter,然后安装 Rebooter 并搭配 MixinBooter 10.x 或更高版本。依赖 FermiumBooter 的模组应能正常运行。请确保文件名中的前导反引号存在;否则可能会抛出 ClassNotFoundException。使用 Cleanroom Loader 时,则无需 MixinBooter。
对于开发者,我们建议您的模组直接依赖 MixinBooter 和 ConfigAnyTime 来加载和控制 mixin。这种方法提供更高级的 mixin 管理和更好的兼容性。仅当您的某个依赖项需要 FermiumBooter 时,才将 Rebooter 添加为依赖。
兼容性
当前兼容目标为 FermiumBooter 1.4.1。
Rebooter 旨在提供截至 1.4.1 的 API 和 ABI 兼容性,包括在 1.2.0 中引入但在 1.3.0 中移除的 API。
下表列出了各 FermiumBooter 版本引入的受支持 API;没有新增 API 的版本已省略。
| 版本 | 引入的 API |
|---|---|
| 1.0.0 | FermiumRegistryAPI.enqueueMixin(boolean, String...)FermiumRegistryAPI.enqueueMixin(boolean, String)FermiumRegistryAPI.enqueueMixin(boolean, String, boolean)FermiumRegistryAPI.enqueueMixin(boolean, String, Supplier<Boolean>)FermiumRegistryAPI.removeMixin(String) |
| 1.2.0 | FermiumRegistryAPI.isModPresent(String)FermiumRegistryAPI.registerAnnotatedMixinConfig(Class<?>, Object) (在 1.3.0 中移除)FermiumEarlyModIDSearcher.isModPresent(String) (在 1.3.0 中移除)FermiumMixinConfigHandler.registerForgeConfigClass(Class<?>, Object) (在 1.3.0 中移除)MixinConfig.SubInstance (在 1.3.0 中移除)MixinConfig.EarlyMixin.name() (在 1.3.0 中移除)MixinConfig.LateMixin.name() (在 1.3.0 中移除)MixinConfig.CompatHandling.modid()MixinConfig.CompatHandling.desired()MixinConfig.CompatHandling.disableMixin()MixinConfig.CompatHandling.reason()MixinConfig.CompatHandlingContainer.value() |
| 1.3.0 | FermiumJarScanner.isModPresent(String)MixinConfig.name()MixinConfig.MixinToggle.earlyMixin()MixinConfig.MixinToggle.lateMixin()MixinConfig.MixinToggle.defaultValue() |
| 1.3.2 | MixinConfig.CompatHandling.warnIngame() |
Rebooter 还支持可配置的网络版本。要连接到现有的 FermiumBooter 服务器,请在 Rebooter 的 fermiumbooter.cfg 中配置 Enable Custom Network Version 和 Custom Network Version。尽管 FermiumBooter 不包含网络组件,但 Forge 在连接时会应用其默认的 @Mod 版本检查。FermiumBooter.java#L9
注解扫描
FermiumBooter 在 1.2.0 中引入了 @MixinConfig,为开发者提供了一种管理 Mixin 配置资源的方法。然而,在 1.3.0 中,注册表被替换为每次启动时进行的完整 ASM 类扫描。在一个包含 230 个模组的 RLCraft Dregora 实例中,这使启动时间增加了约 2.0 秒。
Rebooter 通过优化的 ASM 扫描和缓存,高效且准确地支持这两种方法。当检测到模组变化时,缓存会自动重建,保持其有效性。
自由
Rebooter 从零开始实现,仅将 FermiumBooter 作为 API 兼容性的参考,为所有人提供了一个独立的自由替代方案。
src/ 下的模组代码以 The Unlicense 发布,允许无限制地重复使用。项目模板为 RuiXuqi/ForgeDevEnv,改编自 CleanroomMC/ForgeDevEnv,并根据 MIT License 许可。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。