# Mixin相关

在common中，可以用\`@OnlyInPlatform\`注解来声明某个Mixin类仅在特定平台生效。但还是写在平台子项目里吧：）

Arclight中供自己使用的Mixin接口被称为Bridge。


# Mixin代码命名规范

这个命名规范是从现有代码总结而来的，统一的命名规范有助于项目维护。


Arclight的Mixin代码命名规范基于SpongePowered的Sponge（<https://github.com/SpongePowered/Sponge>）项目的代码命名规范，在本文档中的规范如与Sponge中的用法的产生冲突，以Sponge中的为准。


Mixin插入的方法和字段中，来自Bukkit Patch的，原样写；其他的，均以\`arclight$\`开头（目前，Bridge里也有以\`bridge$\`开头的方法，这是从早期遗留下来的，新方法应该使用\`arclight$\`）。

所有Mixin类的目录都相对于\`net.minecraft\`（例如common平台core中对\`net.minecraft.advancements.AdvancementHolder\`的mixin，应当放置于\`core/advancements\`目录）；

所有的Mixin类以\`目标类名Mixin\`命名；目标类是内部类的，格式为\`目标顶级类名_目标内部类名Mixin\`；

在平台子项目中，所有的Mixin类的名称加上\`_平台名\`后缀；

所有的Bridge以\`目标类名Bridge\`命名。

---

**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)