mirror of
https://github.com/mamoe/mirai.git
synced 2025-01-09 18:00:33 +08:00
30 lines
1.6 KiB
Markdown
30 lines
1.6 KiB
Markdown
# 贡献
|
||
|
||
感谢你来到这里和你对 mirai 做的所有贡献。
|
||
|
||
mirai 欢迎一切形式的代码贡献。你可以通过以下几种途径向 mirai 贡献。
|
||
|
||
## 主仓库 `mirai-core`
|
||
|
||
### 代码优化
|
||
优化功能设计或实现, 或是引入一个新的设计(建议先通过 issue 与我们达成共识)
|
||
|
||
### 协议更新
|
||
为 mirai 添加更广泛的协议支持。
|
||
|
||
### 注意事项
|
||
- mirai 框架已经把实现协议需要做的工作最小化. 为避免工作重复, 请务必熟悉 `net.mamoe.mirai.utils` 和 `net.mamoe.mirai.qqandroid.utils` 中工具类
|
||
- mirai 使用 [`kotlinx.io`](https://github.com/Kotlin/kotlinx-io) IO 库
|
||
- mirai 为多平台项目, 请务必考虑多平台兼容性
|
||
- mirai 为全协程实现, 请在有必要的时候考虑并发安全性
|
||
- 尽量不要引用新的库
|
||
- 遵守 Kotlin 代码规范(提交前使用 IDE 格式化代码 (commit 时勾选 'Reformat code'))
|
||
- 熟悉 [`PacketFactory`](https://github.com/mamoe/mirai/blob/master/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/PacketFactory.kt) 架构
|
||
- 不要手动拆解数据包. 请一定使用 `kotlinx.serialization` 拆解 ProtoBuf, 使用 mirai 的 `Jce` 序列化器拆解 Jce 数据包, 使用 `kotlinx.serialization` 拆解 Json 数据.
|
||
- 必须保证高代码效率(使用 `ByteArrayPool`,`WeakRef` 等)
|
||
|
||
## 社区
|
||
|
||
插件社区不要求太高的代码质量,任何人都可以帮助 mirai。
|
||
可以为 [mirai-console](https://github.com/mamoe/mirai-console) 编写插件, 并发布到社区网站: (建设中)
|