mirror of
https://github.com/mamoe/mirai.git
synced 2025-01-05 23:50:08 +08:00
62 lines
2.1 KiB
Markdown
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` 在协议底层十分复杂, |