跳到正文

Rebooter

作者:RuiXuqi

An elegant FermiumBooter drop-in replacement, backed by MixinBooter.

收藏

介绍

中文介绍正在准备中,下面暂时显示原文。

Rebooter

An elegant drop-in replacement for FermiumBooter, featuring broad API compatibility, cached annotation scanning, and
complete freedom, backed by MixinBooter.

Usage

For users, remove FermiumBooter, then install Rebooter with
MixinBooter 10.x or higher. FermiumBooter-dependent mods should then
function normally. Make sure the leading backtick in the file name is present; otherwise, a ClassNotFoundException may
be thrown. When using Cleanroom Loader, MixinBooter is not needed.

For developers, we recommend making your mod depend directly on
MixinBooter and
ConfigAnyTime to load and control mixins. This approach provides more
advanced mixin management and better compatibility. Add Rebooter as a dependency only when one of your dependencies
requires FermiumBooter.

Compatibility

The current compatibility target is FermiumBooter 1.4.1.

Rebooter aims to provide API and ABI compatibility through 1.4.1, including APIs introduced in 1.2.0 and removed in
1.3.0.

The table lists the supported APIs introduced by each FermiumBooter release; releases with no API additions are omitted.

Version APIs introduced
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) (removed in 1.3.0)
FermiumEarlyModIDSearcher.isModPresent(String) (removed in 1.3.0)
FermiumMixinConfigHandler.registerForgeConfigClass(Class<?>, Object) (removed in 1.3.0)
MixinConfig.SubInstance (removed in 1.3.0)
MixinConfig.EarlyMixin.name() (removed in 1.3.0)
MixinConfig.LateMixin.name() (removed in 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 also supports a configurable network version. To connect to existing FermiumBooter servers, configure
Enable Custom Network Version and Custom Network Version in Rebooter’s fermiumbooter.cfg. Although FermiumBooter
contains no network components, Forge applies its default @Mod version check during connection.
FermiumBooter.java#L9

Annotation scanning

FermiumBooter introduced @MixinConfig in 1.2.0, providing a way for developers to manage Mixin configuration
resources. However, in 1.3.0, the registry was replaced by a full ASM class scan on every launch. In an RLCraft Dregora
instance with 230 mods, this increased launch time by about 2.0 seconds.

Rebooter efficiently and accurately supports both approaches using optimized ASM scanning and a cache. The cache is
rebuilt automatically when mod changes are detected, preserving its validity.

Liberty

Rebooter is implemented from scratch and uses FermiumBooter only as a reference for API compatibility, providing an
independent libre alternative for everyone.

The mod code under src/ is released under The Unlicense, permitting unrestricted reuse. The project template is
RuiXuqi/ForgeDevEnv, adapted from
CleanroomMC/ForgeDevEnv, and is licensed under MIT License.

常见问题

Rebooter 支持哪些 Minecraft 版本?

Rebooter 支持 Minecraft Java 版 1.12.2,可用的加载器:Forge。下载时注意选择和你游戏版本一致的文件。

Rebooter 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Forge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。

评论

登录后评论和评分

RuiXuqi 的其他作品

查看全部 →