技术路线

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