Him188 5 éve
szülő
commit
cc8856ed1a

+ 0 - 0
CHANGELOG.md


+ 131 - 0
docs/ConfiguringProjects.md

@@ -0,0 +1,131 @@
+# Mirai - Configuring Projects
+
+本文介绍如何在一个项目中使用 mirai。
+
+mirai 使用纯 Kotlin 开发,最低要求 `JDK 1.8`,`Kotlin 1.4`。
+
+如果你熟悉构建工具,只需要添加 `jcenter` 仓库和依赖 `net.mamoe:mirai-core:VERSION` 即可而不需要继续阅读。下文将详细解释这些步骤。
+
+本文提供如下三种配置方法,但更推荐使用 Gradle 构建。
+
+- [A. 使用 Gradle](#a-使用-gradle)
+- [B. 使用 Maven](#b-使用-maven)
+- [C. 使用 IntelliJ](#c-使用-intellij)
+
+###  选择版本
+有关各类版本的区别,参考 [版本规范](Evolution.md#版本规范)
+
+[Version]: https://api.bintray.com/packages/him188moe/mirai/mirai-core/images/download.svg?
+[Bintray Download]: https://bintray.com/him188moe/mirai/mirai-core/
+
+| 版本类型 |             版本号              |
+|:------:|:------------------------------:|
+|  稳定   |             1.3.3              |
+|  预览   |             2.0-M1             |
+|  开发   | [![Version]][Bintray Download] |
+
+
+## A. 使用 Gradle
+
+### Gradle Kotlin DSL
+
+在 `build.gradle.kts` 添加:
+
+```kotlin
+plugins {
+    kotlin("jvm") version "1.4.21"
+}
+
+repositories {
+    jcenter()
+}
+
+dependencies {
+    api("net.mamoe", "mirai-core", "1.3.3") // 替换为你需要的版本号
+}
+```
+
+注意,必须添加 Kotlin 插件才能正确获取 mirai 软件包。
+
+### Gradle Groovy DSL
+
+在 `build.gradle` 添加
+
+```groovy
+plugins {
+    id 'org.jetbrains.kotlin.jvm' version '1.4.21'
+}
+
+repositories {
+    jcenter()
+}
+
+dependencies {
+    api('net.mamoe', 'mirai-core', '1.3.3') // 替换为你需要的版本号
+}
+```
+
+
+## B. 使用 Maven
+
+在 `pom.xml` 中:
+
+### 1. 添加 jcenter 仓库
+```xml
+<repositories>
+    <repository>
+        <id>jcenter</id>
+        <url>https://jcenter.bintray.com/</url>
+    </repository>
+</repositories>
+```
+
+### 2. 添加 mirai 依赖
+
+```xml
+<dependencies>
+    <dependency>
+        <groupId>net.mamoe</groupId>
+        <artifactId>mirai-core</artifactId>
+        <version>1.3.3</version> <!-- 替换版本为你需要的版本 -->
+    </dependency>
+</dependencies>
+```
+
+### 3. 添加 Kotlin 依赖
+
+通常 mirai 可以直接使用。但 mirai 使用的 Kotlin 1.4 可能与你的项目使用的其他库依赖的 Kotlin 版本冲突,Maven 无法正确处理这种冲突。此时请手动添加 Kotlin 标准库依赖。
+
+```xml
+<properties>
+    <kotlin.version>1.4.20</kotlin.version>
+</properties>
+```
+```xml
+<dependencies>
+    <dependency>
+        <groupId>org.jetbrains.kotlin</groupId>
+        <artifactId>kotlin-stdlib-jdk8</artifactId>
+        <version>${kotlin.version}</version>
+    </dependency>
+</dependencies>
+```
+
+> 可以在 [Kotlin 官方文档](https://www.kotlincn=.net/docs/reference/using-maven.html) 获取更多有关配置 Kotlin 的信息。
+
+## C. 使用 IntelliJ
+
+### 1. 创建项目
+
+使用现有项目,或创建一个新项目(`File->New->Project`)或新模块(`File->New->Module`)。
+
+### 2. 添加依赖
+
+1. 进入 `Project Structure`(`File->Project Structure`,`Ctrl+Alt+Shift+S`)
+2. 进入 `Libraries`
+3. 找到 `+` 按钮,点击 `From Maven`
+4. 输入 `net.mamoe:mirai-core:1.3.3`,勾选 `Sources`
+5. 确认并等待下载
+
+
+> [回到 Mirai 文档索引](README.md)

+ 1 - 0
docs/Contacts.md

@@ -0,0 +1 @@
+# Mirai - Contacts

+ 40 - 0
docs/CreatingBots.md

@@ -0,0 +1,40 @@
+# Mirai - Creating Bots
+
+## 获取 `Bot` 实例
+
+一个机器人被以 `Bot` 对象描述。mirai 的交互入口点是 `Bot`。`Bot` 只可通过 [`BotFactory`](../mirai-core-api/src/commonMain/kotlin/BotFactory.kt#L22-L87) 内的 `newBot` 方法获得:
+
+```kotlin
+interface BotFactory {
+    fun newBot(qq: Long, password: String, configuration: BotConfiguration): Bot
+    fun newBot(qq: Long, password: String): Bot = newBot(qq, password, BotConfiguration.Default)
+    fun newBot(qq: Long, passwordMd5: ByteArray, configuration: BotConfiguration): Bot
+    fun newBot(qq: Long, passwordMd5: ByteArray): Bot = newBot(qq, passwordMd5, BotConfiguration.Default)
+    
+    companion object : BotFactory by BotFactoryImpl
+}
+```
+
+通常的调用方法为:
+```
+// Kotlin
+val bot = BotFactory.newBot(    )
+
+// Java
+Bot bot = BotFactory.INSTANCE.newBot(    );
+```
+
+### 获取当前所有 `Bot` 实例
+在登录后,`Bot` 实例会被自动记录。可在 `Bot.instances` 获取到当前在线的所有 `Bot` 列表。当 `Bot` 离线,其实例就会被删除。
+
+## 登录
+
+创建 `Bot` 后不会自动登录,需要手动调用其 `login()` 方法。在 Kotlin 还可以使用 `Bot.alsoLogin()` 扩展,相当于 `bot.apply { login() }`
+
+### 重新登录
+
+可以再次调用 `Bot.login()` 以重新登录 `Bot`。这一般没有必要——`Bot` 运行时会自动与服务器同步事件(如群成员变化,好友数量变化)。
+
+
+> 下一步,[Contacts](Contacts.md)
+> [回到 Mirai 文档索引](README.md)

+ 50 - 0
docs/Evolution.md

@@ -0,0 +1,50 @@
+# Mirai - Evolution
+
+### Mirai 演进
+
+Mirai 是不断前进的库,将来必定会发生 API 弃用和重构。  
+维护者会严谨地推进每一项修改,并提供迁移周期(至少 2 个次版本)。
+
+### 版本规范
+
+Mirai 的版本号遵循 [语义化版本 2.0.0](https://semver.org/lang/zh-CN/#spec-item-9) 规范。
+
+在日常开发中, Mirai 会以 `-dev-1`,`-dev-2` 等版本后缀发布开发预览版本。这些版本仅用于兼容性测试等目的,无稳定性保证。
+
+在大版本开发过程中,Mirai 会以 `-M1`, `-M2` 等版本后缀发布里程碑预览版本。代表一系列功能的完成,但还不稳定。  
+这些版本里新增的 API 仍可能还会在下一个 Milestone 版本变化,因此请按需使用。
+
+在大版本即将发布前,Mirai 会以 `-RC` 版本后缀发布最终的预览版本。  
+`RC` 表示新版本 API 已经确定,离稳定版发布只差最后的一些内部优化或 bug 修复。
+
+### 版本选择
+
+**稳定性**:稳定 (`x.y.z`) > 发布预览 (`-RC`) > 里程碑预览 (`-M`) > 开发 (`-dev`)。
+
+|        目的        | 推荐至少更新到版本 |
+|:------------------:|:--------------:|
+|      生产环境       |     `x.y.z`     |
+| 希望尽早体验稳定新特性 |     `-RC`      |
+| 无论如何都想体验新特性 |      `-M`      |
+|  为 Mirai 提交 PR   |     `-dev`     |
+
+## 更新兼容性
+
+对于 `x.y.z` 版本号:
+- 当 `z` 增加时,只会有 bug 修复,和必要的新函数添加(为了解决某一个问题),不会有破坏性变化。
+- 当 `y` 增加时,可能有新 API 的引入,和旧 API 的弃用。但这些弃用会经过一个弃用周期后才被删除(隐藏)。向下兼容得到保证。
+- 当 `x` 增加时,任何 API 都可能会有变化。无兼容性保证。
+
+## 弃用周期
+
+一个计划被删除的 API,将会在下一个次版本开始经历弃用周期。
+
+如一个 API 在 `1.1.0` 起被弃用,它首先会是 `WARNING` (使用时会得到一个编译警告)弃用级别。  
+在 `1.2.0` 上升为 `ERROR`(使用时会得到一个编译错误);  
+在 `1.3.0` 上升为 `HIDDEN`(使用者无法看到这些 API)。
+
+`HIDDEN` 的 API 仍然会保留在代码中并正常编译,以提供二进制兼容性,直到下一个主版本更新。
+
+
+
+> [回到 Mirai 文档索引](README.md)

+ 1 - 3
docs/mirai-code-specification.md → docs/MiraiCodeSepecification.md

@@ -4,12 +4,10 @@
 
 ## mirai 码
 mirai 的部分 [消息](../mirai-core-api/src/commonMain/kotlin/message/data/Message.kt) 可以表示为形如 `[mirai:atall]` 的字符串.  
-模块 `mirai-core` 包含消息到 mirai 码的单向转换; 模块 `mirai-serialization` 提供 mirai 码的解析.
-
-运行时: [mirai-serialization](../mirai-serialization/)
 
 ## 变更记录
 - `1.1.0`: 引入 mirai 码于 `mirai-serialization` 模块
+- `1.2.0`: mirai 码集成到 mirai-core。不再需要 `mirai-serialization` 模块。
 
 ## 格式
 

+ 19 - 0
docs/README.md

@@ -0,0 +1,19 @@
+# Mirai
+
+欢迎来到 mirai 文档。
+
+## 生态
+
+[Mirai 生态概览](mirai-ecology.md)
+
+## 配置项目
+
+> 可以首先体验让机器人发送消息:在 IDE 克隆 [mirai-hello-world](https://github.com/project-mirai/mirai-hello-world) 并运行其中入口点。
+
+要把 mirai 作为一个依赖库使用,请参考 [Configuring Projects](ConfiguringProjects.md)。
+
+要使用 mirai-console 框架,请前往 [mirai-console](https://github.com/mamoe/mirai-console)。
+
+## 开发
+
+- [创建 Bot](CreatingBots.md)

+ 0 - 186
docs/guide_build_for_mirai.md

@@ -1,186 +0,0 @@
-# Mirai Guide - Build For Mirai
-
-由于Mirai项目在快速推进中,因此内容时有变动,本文档的最后更新日期为```2020-02-29```,对应版本```0.23.0```
-
-本页面采用Kotlin作为开发语言,**若你希望使用 Java 开发**, 请参阅: [mirai-japt](https://github.com/mamoe/mirai-japt)
-
-本页面是[Mirai Guide - Subscribe Events](/docs/guide_subscribe_events.md)的后续Guide
-
-## build.gradle
-
-我们首先来看一下完整的```build.gradle```文件
-
-```groovy
-plugins {
-    id 'java'
-    id 'org.jetbrains.kotlin.jvm' version '1.3.61'
-}
-
-group 'test'
-version '1.0-SNAPSHOT'
-
-sourceCompatibility = 1.8
-
-repositories {
-    mavenCentral()
-    jcenter()
-}
-
-dependencies {
-    implementation 'net.mamoe:mirai-core-qqandroid:0.19.1'
-    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
-    testCompile group: 'junit', name: 'junit', version: '4.12'
-}
-
-compileKotlin {
-    kotlinOptions.jvmTarget = "1.8"
-}
-compileTestKotlin {
-    kotlinOptions.jvmTarget = "1.8"
-}
-```
-
-使用gradle直接打包,不会将依赖也打包进去
-
-因此,我们引入一些插件进行打包
-
-### ShadowJar
-
-shadowJar支持将依赖也打包到Jar内,下面介绍用法。
-
-#### 1.buildscript
-
-首先声明buildScript
-
-```groovy
-buildscript {
-    repositories {
-        jcenter()
-    }
-    dependencies {
-        classpath 'com.github.jengelman.gradle.plugins:shadow:5.2.0'
-    }
-}
-```
-
-在plugin前加入以上语句
-
-
-
-#### 2.在plugins中进行插件的使用
-
-将原本的plugins
-
-```groovy
-plugins {
-    id 'java'
-    id 'org.jetbrains.kotlin.jvm' version '1.3.61'
-}
-```
-
-覆盖为
-
-```groovy
-plugins {
-    id 'java'
-    id 'org.jetbrains.kotlin.jvm' version '1.3.61'
-    id 'com.github.johnrengelman.shadow' version '5.2.0'//使用shadow对依赖进行打包
-}
-
-apply plugin: 'com.github.johnrengelman.shadow'
-apply plugin: 'java'
-```
-
-
-
-#### 3.添加shadowJar
-
-在文件底部添加
-
-```groovy
-shadowJar {
-    // 生成包的命名规则: baseName-version-classifier.jar
-    manifest {
-        attributes(
-                'Main-Class': 'net.mamoe.mirai.simpleloader.MyLoaderKt'//入口点
-        )
-    }
-
-    // 将 build.gradle 打入到 jar 中, 方便查看依赖包版本
-    from("./"){
-        include 'build.gradle'
-    }
-}
-```
-
-
-
-#### 4.运行build
-
-在IDEA中点击```ShadowJar```左侧的run按钮(绿色小三角),build完成后在```build\libs```中找到jar
-
-
-
-至此,build.gradle内的内容是
-
-```groovy
-buildscript {
-    repositories {
-        jcenter()
-    }
-    dependencies {
-        classpath 'com.github.jengelman.gradle.plugins:shadow:5.2.0'
-    }
-}
-
-
-plugins {
-    id 'java'
-    id 'org.jetbrains.kotlin.jvm' version '1.3.61'
-    id 'com.github.johnrengelman.shadow' version '5.2.0'//使用shadow对依赖进行打包
-}
-
-apply plugin: 'com.github.johnrengelman.shadow'
-apply plugin: 'java'
-
-group 'test'
-version '1.0-SNAPSHOT'
-
-sourceCompatibility = 1.8
-
-
-repositories {
-    mavenCentral()
-    jcenter()
-}
-
-dependencies {
-    implementation 'net.mamoe:mirai-core-qqandroid:0.23.0'
-    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
-    testCompile group: 'junit', name: 'junit', version: '4.12'
-}
-
-
-compileKotlin {
-    kotlinOptions.jvmTarget = "1.8"
-}
-compileTestKotlin {
-    kotlinOptions.jvmTarget = "1.8"
-}
-
-shadowJar {
-    // 生成包的命名规则: baseName-version-classifier.jar
-    manifest {
-        attributes(
-                'Main-Class': 'net.mamoe.mirai.simpleloader.MyLoaderKt'
-        )
-    }
-
-    // 将 build.gradle 打入到 jar 中, 方便查看依赖包版本
-    from("./"){
-        include 'build.gradle'
-    }
-}
-
-```
-

+ 0 - 131
docs/guide_getting_started.md

@@ -1,131 +0,0 @@
-# Mirai Guide - Getting Started
-
-由于Mirai项目在快速推进中,因此内容时有变动,本文档的最后更新日期为```2020-04-01```,对应版本```0.31.4```
-
-假如仅仅使用Mirai,不需要对整个项目进行Clone,只需在项目内添加Gradle Dependency或使用即可。
-
-下面介绍详细的入门步骤。
-
-本页采用Kotlin作为开发语言,**若你希望使用 Java 开发**, 请参阅: [mirai-japt](https://github.com/mamoe/mirai-japt)
-
-
-
-## 起步步骤
-通过编写Kotlin程序,以第三方库的形式调用```mirai-core```,并定义你的Mirai Bot行为。
-
-假如已经对Gradle有一定了解,可跳过1,2
-
-### 1 安装IDEA与JDK
-
-- JDK 要求6以上
-
-### 2 新建Gradle项目
-
-*使用gradle项目可能需要代理,在IDEA的```settings```->```proxy settings```中可以设置
-
-- 在```File->new project```中选择```Gradle```
-- 在面板中的```Additional Libraries and Frameworks```中勾选```Java```以及```Kotlin/JVM```
-- 点击```next```,填入```GroupId```与```ArtifactId```(对于测试项目来说,可随意填写)
-- 点击```next```,点击```Use default gradle wrapper(recommended)```
-- 创建项目完成
-
-### 3 添加依赖
-
-- 打开项目的```Project```面板,点击编辑```build.gradle```
-
-- 首先添加repositories
-
-  ```groovy
-  //添加jcenter仓库
-  /*
-  repositories {
-      maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
-      mavenCentral()
-  }
-  原文内容,更新为下文
-  */
-  
-  repositories {
-      maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
-      mavenCentral()
-      jcenter()
-  }
-  ```
-
-- 添加依赖,将dependencies部分覆盖。 `mirai-core` 的最新版本为: [![Download](https://api.bintray.com/packages/him188moe/mirai/mirai-core/images/download.svg)](https://bintray.com/him188moe/mirai/mirai-core/)  
-
-  ```groovy
-  dependencies {
-      implementation 'net.mamoe:mirai-core-qqandroid:1.1-EA'//此处版本应替换为当前最新
-      implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
-      testCompile group: 'junit', name: 'junit', version: '4.12'
-  }
-  ```
-
-- 打开右侧Gradle面板,点击刷新按钮
-- 至此,依赖添加完成
-
-### 4 Try Bot
-
-- 在src/main文件夹下新建文件夹,命名为```kotlin```
-- 在```kotlin```下新建包(在```kotlin```文件夹上右键-```New```-```Package```) 包名为```net.mamoe.mirai.simpleloader```
-
-- 在包下新建kotlin文件```MyLoader.kt```
-
-```kotlin
-package net.mamoe.mirai.simpleloader
-
-import kotlinx.coroutines.*
-import net.mamoe.mirai.Bot
-import net.mamoe.mirai.alsoLogin
-import net.mamoe.mirai.join
-import net.mamoe.mirai.message.data.At
-import net.mamoe.mirai.contact.Member
-import net.mamoe.mirai.event.subscribeMessages
-
-suspend fun main() {
-    val qqId = 10000L//Bot的QQ号,需为Long类型,在结尾处添加大写L
-    val password = "your_password"//Bot的密码
-    val miraiBot = Bot(qqId, password).alsoLogin()//新建Bot并登录
-    miraiBot.subscribeMessages {
-        "你好" reply "你好!"
-        case("at me") {
-            reply(At(sender as Member) + " 给爷爬 ")
-        }
-
-        (contains("舔") or contains("刘老板")) {
-            reply("刘老板太强了")
-        }
-    }
-    miraiBot.join() // 等待 Bot 离线, 避免主线程退出
-}
-```
-
-- 单击编辑器内第8行(```suspend fun main```)左侧的run按钮(绿色三角),等待,MiraiBot成功登录。
-- 本例的功能中,在任意群内任意成员发送包含“舔”字或“刘老板”字样的消息,MiraiBot会回复“刘老板太强了”
-
-
-至此,简单的入门已经结束,下面可根据不同的需求参阅wiki进行功能的添加。
-
-下面,可以尝试对不同事件进行监听[Mirai Guide - Subscribe Events](/docs/guide_subscribe_events.md)
-
-### 此外,还可以使用Maven作为包管理工具
-本项目推荐使用gradle,因此不提供详细入门指导
-
-```xml
-<repositories>
-    <repository>
-        <id>jcenter</id>
-        <url>https://jcenter.bintray.com/</url>
-    </repository>
-</repositories>
-```
-```xml
-<dependencies>
-    <dependency>
-        <groupId>net.mamoe</groupId>
-        <artifactId>mirai-core-qqandroid</artifactId>
-        <version>0.23.0</version> <!-- 替换版本为最新版本 -->
-    </dependency>
-</dependencies>
-```

+ 0 - 103
docs/guide_quick_start.md

@@ -1,103 +0,0 @@
-# Mirai Guide - Quick Start
-
-由于 mirai 项目在快速推进中,因此内容时有变动,本文档的最后更新日期为```2020/6/22```,对应版本```1.0.2```
-
-本文适用于对 Kotlin 较熟悉的开发者,  
-使用 mirai 作为第三方依赖库引用到任意一个 Kotlin, Java 或其他 JVM 平台的项目
-
-**若你希望一份更基础的教程**, 请参阅: [mirai-guide-getting-started](guide_getting_started.md)
-
-## 构建需求
-
-- JDK 6 或更高
-
-## 获取 Demo
-可在 [mirai-demos](https://github.com/mamoe/mirai-demos) 中获取已经配置好依赖的示例项目.
-
-## Quick Start
-
-请将 `VERSION` 替换为 `mirai-core` 的最新版本号(如 `1.0.4`):
-[![Download](https://api.bintray.com/packages/him188moe/mirai/mirai-core/images/download.svg)](https://bintray.com/him188moe/mirai/mirai-core/)  
-
-### 添加依赖
-可通过以下三种方法之一添加 mirai 依赖.
-
-#### Maven
-
-```xml
-<repositories>
-    <repository>
-        <id>jcenter</id>
-        <url>https://jcenter.bintray.com/</url>
-    </repository>
-</repositories>
-```
-
-```xml
-<dependencies>
-    <dependency>
-        <groupId>net.mamoe</groupId>
-        <artifactId>mirai-core-qqandroid</artifactId>
-        <version>0.23.0</version> <!-- 替换版本为最新版本 -->
-    </dependency>
-</dependencies>
-```
-
-#### Gradle (推荐)
-
-Mirai 只发布在 `jcenter`, 因此请确保添加 `jcenter()` 仓库:
-
-```kotlin
-repositories{
-  jcenter()
-}
-```
-
-**注意:**
-Mirai 核心由 API 模块(`mirai-core`)和协议模块组成。依赖协议模块时会自动依赖相应版本的 API 模块。
-请参照下文选择目标平台的依赖添加。
-
-如果你只用 Java / Kotlin 或其他语言开发 JVM 平台应用,只需要添加下文第一条。
-如果你只开发 Android 应用,只需添加下文第三条。
-
-**jvm** (JVM 平台源集)
-
-```kotlin
-implementation("net.mamoe:mirai-core-qqandroid:VERSION")
-```
-
-**common** (Kotlin 多平台项目的通用源集)
-
-```kotlin
-implementation("net.mamoe:mirai-core-qqandroid-common:VERSION")
-```
-
-**android** (Android 平台源集)
-**注意**: 在 [KT-37152](https://youtrack.jetbrains.com/issue/KT-37152) 修复前, mirai 无法支持 Android 平台目标.
-```kotlin
-implementation("net.mamoe:mirai-core-qqandroid-android:VERSION")
-```
-
-#### 直接导入jar包 (不推荐)
-下载已经编译好的 Jar 包, 并添加 Jar 依赖:
-- [mirai-core](https://github.com/mamoe/mirai-repo/tree/master/shadow/mirai-core)
-- [mirai-qqandroid](https://github.com/mamoe/mirai-repo/tree/master/shadow/mirai-core-qqandroid)
-
-
-### 开始使用
-
-```kotlin
-val bot = Bot(qqId, password).alsoLogin()
-bot.subscribeAlways<GroupMessageEvent> { event ->
-  if (event.message.content.contains("你好")) {
-     reply("你好!")
-  } else if (event.message.content.contains("你好")) {
-     File("C:\\image.png").sendAsImage()
-  } 
-}
-
-bot.subscribeAlways<MemberPermissionChangedEvent> { event ->
-  if (event.kind == BECOME_OPERATOR)
-    reply("${event.member.id} 成为了管理员")
-}
-```

+ 0 - 111
docs/guide_subscribe_events.md

@@ -1,111 +0,0 @@
-# Mirai Guide - Subscribe Events
-
-由于Mirai项目在快速推进中,因此内容时有变动,本文档的最后更新日期为`2020-04-01`,对应版本`0.31.4`
-
-本页面采用Kotlin作为开发语言,**若你希望使用 Java 开发**, 请参阅: [mirai-japt](https://github.com/mamoe/mirai-japt)
-
-本页面是[Mirai Guide - Getting Started](/docs/guide_getting_started.md)的后续Guide
-
-## 消息事件-Message Event
-
-首先我们来回顾上一个Guide的源码
-
-```kotlin
-suspend fun main() {
-    val qqId = 10000L//Bot的QQ号,需为Long类型,在结尾处添加大写L
-    val password = "your_password"//Bot的密码
-    val miraiBot = Bot(qqId, password).alsoLogin()//新建Bot并登录
-    miraiBot.subscribeMessages {
-        "你好" reply "你好!"
-        case("at me") {
-            reply(sender.at() + " 给爷爬 ")
-        }
-
-        (contains("舔") or contains("刘老板")) {
-            "刘老板太强了".reply()
-        }
-    }
-    miraiBot.join() // 等待 Bot 离线, 避免主线程退出
-}
-```
-
-在本例中,`miraiBot`是一个Bot对象,让其登录,然后对`Message Event`进行了监听。
-
-对于`Message Event`,`Mirai`提供了较其他Event更强大的[MessageSubscribersBuilder](https://github.com/mamoe/mirai/wiki/mirai-core-api/src/commonMain/kotlin/event/MessageSubscribers.kt#L140),本例也采用了[MessageSubscribersBuilder](https://github.com/mamoe/mirai/wiki/mirai-core-api/src/commonMain/kotlin/event/MessageSubscribers.kt#L140)。其他具体使用方法可以参考[Wiki:Message Event](https://github.com/mamoe/mirai/wiki/Development-Guide---Kotlin#Message-Event)部分。
-
-## 事件-Event
-
-上一节中提到的`Message Event`仅仅是众多`Event`的这一种,其他`Event`有:群员加入群,离开群,私聊等等...
-
-具体事件文档暂不提供,可翻阅源码[**BotEvents.kt**](https://github.com/mamoe/mirai/blob/master/mirai-core-api/src/commonMain/kotlin/event/events/BotEvents.kt),查看注释。当前事件仍在扩充中,可能有一定不足。
-
-下面我们开始示例对一些事件进行监听。
-
-## 尝试监听事件-Try Subscribing Events
-
-### 监听加群事件
-
-在代码中的`miraiBot.join()`前添加
-
-```kotlin
-miraiBot.subscribeAlways<MemberJoinEvent> {
-    it.group.sendMessage(PlainText("欢迎 ${it.member.nameCardOrNick} 加入本群!"))
-}
-```
-
-本段语句监听了加入群的事件。
-
-### 监听禁言事件
-
-在代码中添加
-
-```kotlin
-miraiBot.subscribeAlways<MemberMuteEvent> {
-    it.group.sendMessage(PlainText("恭喜老哥 ${it.member.nameCardOrNick} 喜提禁言套餐一份"))
-}
-```
-
-在被禁言后,Bot将发送恭喜语句。
-
-### 添加后的可执行代码
-
-至此,当前的代码为
-
-```kotlin
-package net.mamoe.mirai.simpleloader
-
-import kotlinx.coroutines.*
-import net.mamoe.mirai.Bot
-import net.mamoe.mirai.alsoLogin
-import net.mamoe.mirai.contact.nameCardOrNick
-import net.mamoe.mirai.event.events.MemberJoinEvent
-import net.mamoe.mirai.event.events.MemberMuteEvent
-import net.mamoe.mirai.event.subscribeAlways
-import net.mamoe.mirai.event.subscribeMessages
-import net.mamoe.mirai.message.data.PlainText
-
-suspend fun main() {
-    val qqId = 10000L//Bot的QQ号,需为Long类型,在结尾处添加大写L
-    val password = "your_password"//Bot的密码
-    val miraiBot = Bot(qqId, password).alsoLogin()//新建Bot并登录
-    miraiBot.subscribeMessages {
-        "你好" reply "你好!"
-        case("at me") {
-            reply(sender.at() + " 给爷爬 ")
-        }
-
-        (contains("舔") or contains("刘老板")) {
-            "刘老板太强了".reply()
-        }
-    }
-    miraiBot.subscribeAlways<MemberJoinEvent> {
-        it.group.sendMessage(PlainText("欢迎 ${it.member.nameCardOrNick} 加入本群!"))
-    }
-    miraiBot.subscribeAlways<MemberMuteEvent> {
-        it.group.sendMessage(PlainText("恭喜老哥 ${it.member.nameCardOrNick} 喜提禁言套餐一份"))
-    }
-    miraiBot.join() // 等待 Bot 离线, 避免主线程退出
-}
-```
-
-下面可以参阅[Mirai Guide - Build For Mirai](/docs/guide_build_for_mirai.md),对你的Mirai应用进行打包

+ 1 - 1
docs/mirai.md

@@ -26,7 +26,7 @@ mirai 项目整体由 核心 (`mirai-core`) 与 控制台(`mirai-console`) 组
 
   `mirai-core` 设计为一个 **`支持库`**, 意味着它可以被独立依赖, 在任意项目中使用. 详见下文.
 
-- `mirai-serialization` 依赖 `mirai-core`, 是 mirai-core 的序列化支持模块. 提供 `Message` 类型的序列化支持与相关 [mirai 码](mirai-code-specification.md) 支持.  
+- `mirai-serialization` 依赖 `mirai-core`, 是 mirai-core 的序列化支持模块. 提供 `Message` 类型的序列化支持与相关 [mirai 码](MiraiCodeSepecification.md) 支持.  
   此模块自 mirai `1.1.0` 起可用, 引用方法同 `mirai-core`.
 
 - [`mirai-console`](https://github.com/mamoe/mirai-console) 是基于 `mirai-core` 的, 支持插件加载, 指令系统, 和配置等的**控制台框架**.  

+ 1 - 1
mirai-core-api/src/commonMain/kotlin/message/code/CodableMessage.kt

@@ -18,7 +18,7 @@ import net.mamoe.mirai.message.data.*
  * 使用 `mirai-serialization` 中 `String.parseMiraiCode()` 转回 [Message].
  *
  * ## 规范
- * 可在 [mirai-code-specification.md](https://github.com/mamoe/mirai/blob/dev/docs/mirai-code-specification.md) 查看 mirai 码规范.
+ * 可在 [MiraiCodeSepecification.md](https://github.com/mamoe/mirai/blob/dev/docs/MiraiCodeSepecification.md) 查看 mirai 码规范.
  *
  * @suppress 警告: 此 API 可能在任何时刻被改变
  *