mirai/mirai-core/README.md

62 lines
2.1 KiB
Markdown

# mirai-core
mirai 核心实现模块。首先阅读 [mirai-core-api/README.md](../mirai-core-api/README.md)。
本文仅介绍重要部分。
## 架构
| 包名 | 描述 |
|:---------------------------|:--------------------|
| `net.mamoe.mirai.internal` | mirai 核心 API 的实现 |
| `.contact` | 联系人实现 |
| `.message` | 消息系统的实现 |
| `.network` | 网络层实现 |
| `.utils` | 工具类 |
## `net.mamoe.mirai.internal.contact`
### `AbstractContact`
[AbstractContact.kt](src/commonMain/kotlin/contact/AbstractContact.kt#L22)
所有 `Contact` 实现的基类. 实现生命周期等.
### `SendMessageHandler`
[SendMessageHandler.kt](src/commonMain/kotlin/contact/SendMessageHandler.kt#L35)
处理 mirai 消息系统 `Message` 到协议数据结构的转换, 并处理长消息上传, 音乐转发上传等.
## `net.mamoe.mirai.internal.message`
### `ReceiveMessageTransformer`
[ReceiveMessageHandler.kt](src/commonMain/kotlin/message/ReceiveMessageHandler.kt#L29)
处理协议数据结构到 `Message` 的转换. 设有 `RefinableMessage` 处理长消息下载, 合并转发下载并展开等.
### `RefinableMessage`
[RefinableMessage.kt](src/commonMain/kotlin/message/RefinableMessage.kt#L17)
支持处理长消息下载, 合并转发下载并展开等.
### `Image` 实现
[imagesImpl.kt](src/commonMain/kotlin/message/imagesImpl.kt#L30)
图片的实现的基类为 `AbstractImage`.
在底层协议, 群图片与私聊图片很不同. 因此图片实现可以是 `GroupImage``FriendImage`.
图片又细分了 `OnlineImage``OfflineImage`. 故有 `OnlineGroupImage` 等四个类型, 及他们分别的 `Impl`.
`OnlineImage` 为通过 `Contact.uploadImage` 上传得到的, 或刚刚从服务器接收的图片对象. `OfflineImage` 则为反序列化得到的对象.
### `MessageSource` 实现
[MessageSourceInternal.kt](src/commonMain/kotlin/message/MessageSourceInternal.kt#L20)
`MessageSource` 在协议底层十分复杂,