# 技术路线

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](/doc/a4d74849-850b-47dd-8ace-05704d83f939)）

mixin-tools：<https://github.com/ArclightPowered/mixin-tools>

---

**Documents**

- [Versions and its supporting status](https://wiki.izzel.io/s/arclight-docs/doc/versions-and-its-supporting-status-NCKYxXI3mt)
- [Tutorials](https://wiki.izzel.io/s/arclight-docs/doc/tutorials-LsIkwojL9P)
- [Administration](https://wiki.izzel.io/s/arclight-docs/doc/administration-puh66tln4f)
- [Development](https://wiki.izzel.io/s/arclight-docs/doc/development-kCaAexaIdQ)
- [FAQ](https://wiki.izzel.io/s/arclight-docs/doc/faq-ApcZ25PXVT)
- [Donate](https://wiki.izzel.io/s/arclight-docs/doc/donate-Bj9cf2F5YH)