技术路线
Arclight使用Mixin在mc代码里复刻Bukkit的patch;同时使用Mixin修改Bukkit API和CraftBukkit的行为。
arclight采用分层的项目结构,有`arclight-common`、`arclight-neoforge`、`arclight-fabric`、`arclight-forge`四个子项目,其中neoforge、fabric、forge合称为平台子项目
在平台子项目中,可以对common项目的代码Mixin
在common项目中,存在四个mixin config:
mixins.arclight.bukkit.json、mixins.arclight.core.json、mixins.arclight.vanilla.json、mixins.arclight.impl.optimization.json其中,bukkit是对Bukkit和CraftBukkit的;
core是对mc的;
vanilla来自arclight曾经把模组加载器平台分为forge-like和vanilla-like两类,但现在发现这个区分方法并不合适,vanilla目前只会应用在fabric平台上;
optimization包含arclight的优化功能,可以在arclight.conf中整体开关。
为什么使用izzel的mixin-tools而不是MixinExtras?
mixin-tools的`@Decorate`提供了一个更简单的方法,把代码块直接插入注入点中。(详见:@Decorate Usage)
mixin-tools:https://github.com/ArclightPowered/mixin-tools