mirai/mirai-core-api/README.md
Him188 c03155af6d
Review docs and improve readability (#1291)
* Review docs and improve readability

* Update docs/Bots.md

Co-authored-by: Karlatemp <karlatemp@vip.qq.com>

* Update docs/Bots.md

Co-authored-by: Karlatemp <karlatemp@vip.qq.com>

* Update docs/Bots.md

Co-authored-by: Karlatemp <karlatemp@vip.qq.com>

* Fix doc

* Fix doc

* Clarify AnonymousMember and NormalMember

* Fix typo

* Add language type

Co-authored-by: Karlatemp <karlatemp@vip.qq.com>
2021-06-02 20:29:36 +08:00

3.3 KiB
Raw Blame History

mirai-core-api

mirai 核心 API 模块。本文档帮助读者了解该模块的主要架构。

mirai 为多平台设计。支持 Android 和 JVM 双平台,拥有多个源集。

  • commonMain:平台无关的通用代码。绝大部分代码都存在与这个源集。
  • jvmMain:桌面 JVM 平台的特别实现。
  • androidMainAndroid 平台的特别实现。

阅读源码通常阅读 src/commonMain

架构

包名 描述
net.mamoe.mirai mirai 核心 API
.contact 联系人类型。如群 Group,好友 Friend
.event 事件框架。提供事件对象的基类以及监听事件的方法
.event.events 事件的定义。包含许多事件的具体类, 如消息事件 MessageEvent
.message 消息系统
.message.data 提供对富文本聊天消息及其元素多样性的抽象
.message.code 提供一个易于阅读的消息字符串表示方式
.message.action 提供与消息有关的动作的抽象,如戳一戳
.utils 一些工具类
.internal 内部实现
.internal.event 事件框架的实现

net.mamoe.mirai

IMirai

IMirai.kt

API 模块与协议实现模块的对接接口。

  • 单例
  • 通过 ServiceLoader 寻找协议实现
  • ServiceLoader 在特定环境下不可用,外部可在 Kotlin 在调用任何 Mirai API 之前覆盖实例:
    @Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") // 必要
    net.mamoe.mirai._MiraiInstance.set(net.mamoe.mirai.internal.MiraiImpl())
    

Bot

Bot.kt

表示一个机器人对象(账户)。

  • 通过 BotFactory 构造
  • 是功能的入口点----大部分操作都直接或间接经过 Bot
  • 持有联系人(好友和群)对象列表
  • 可获得事件通道

net.mamoe.mirai.contact

联系人系统。docs/Contacts

net.mamoe.mirai.event

事件系统。docs/Contacts

net.mamoe.mirai.event.events

事件列表。README

net.mamoe.mirai.message

消息系统。

MessageReceipt

MessageReceipt.kt

在发送消息(Contact.sendMessage)后收到的回执。

MessageSerializers

MessageSerializers.kt

kotlinx.serialization 序列化支持。

net.mamoe.mirai.message.data

对富文本聊天消息及其元素多样性的抽象。

一个消息元素最基本的接口为 Message.