Quellcode durchsuchen

Merge remote-tracking branch 'origin/master'

Him188 vor 5 Jahren
Ursprung
Commit
d3c950a152

+ 6 - 3
docs/guide_getting_started.md

@@ -56,7 +56,7 @@
 
   ```groovy
   dependencies {
-      implementation 'net.mamoe:mirai-core-qqandroid:0.32.0'//此处版本应替换为当前最新
+      implementation 'net.mamoe:mirai-core-qqandroid:1.1-EA'//此处版本应替换为当前最新
       implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
       testCompile group: 'junit', name: 'junit', version: '4.12'
   }
@@ -78,6 +78,9 @@ 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() {
@@ -87,11 +90,11 @@ suspend fun main() {
     miraiBot.subscribeMessages {
         "你好" reply "你好!"
         case("at me") {
-            reply(sender.at() + " 给爷爬 ")
+            reply(At(sender as Member) + " 给爷爬 ")
         }
 
         (contains("舔") or contains("刘老板")) {
-            "刘老板太强了".reply()
+            reply("刘老板太强了")
         }
     }
     miraiBot.join() // 等待 Bot 离线, 避免主线程退出

+ 2 - 2
docs/guide_quick_start.md

@@ -1,6 +1,6 @@
 # Mirai Guide - Quick Start
 
-由于 mirai 项目在快速推进中,因此内容时有变动,本文档的最后更新日期为```2020/5/11```,对应版本```1.0-RC2-1```
+由于 mirai 项目在快速推进中,因此内容时有变动,本文档的最后更新日期为```2020/6/22```,对应版本```1.0.2```
 
 本文适用于对 Kotlin 较熟悉的开发者,  
 使用 mirai 作为第三方依赖库引用到任意一个 Kotlin, Java 或其他 JVM 平台的项目
@@ -9,7 +9,7 @@
 
 ## 构建需求
 
-- Kotlin 1.3.71 (必须)
+- Kotlin 1.3.72 (必须)
 - JDK 6 或更高 (必须)
 
 ## 获取 Demo

+ 5 - 8
docs/mirai.md

@@ -20,15 +20,12 @@
 mirai 项目整体由 核心 (`mirai-core`) 与 控制台(`mirai-console`) 组成.
 
 
-- [`mirai-core`](../mirai-core) 是机器人服务支持**库**. 提供所有机器人相关 API. **本身只包含抽象类和接口, 具体由协议模块实现**.  
+- [`mirai-core`](../mirai-core) 是机器人服务支持**库**. 提供所有机器人相关 API. **本身只包含抽象类和接口, 使用时还需要同时依赖协议模块**.  
   可用的协议模块:
-  - [`mirai-core-qqandroid`](../mirai-core-qqandroid): Android QQ 8.3.0 版本协议实现.
+  - [`mirai-core-qqandroid`](../mirai-core-qqandroid): Android QQ 8.3.0 版本协议实现. 
 
   `mirai-core` 设计为一个 **`支持库`**, 意味着它可以被独立依赖, 在任意项目中使用. 详见下文.
 
-
-- `mirai-core-qqandroid` 继承 `mirai-core`, 是 Android QQ 协议的实现. 在使用时只需参考 `mirai-core` 的 API.
-
 - `mirai-serialization` 依赖 `mirai-core`, 是 mirai-core 的序列化支持模块. 提供 `Message` 类型的序列化支持与相关 [mirai 码](mirai-code-specification.md) 支持.  
   此模块自 mirai `1.1.0` 起可用, 引用方法同 `mirai-core`.
 
@@ -122,17 +119,17 @@ Mirai 通过某种方式同时生成了桥梁方法 `public void sendMessage(Mes
 
 #### 第三方依赖
 
-mirai-core 通过 gradle 依赖的 `api` 方式暴露了如下依赖库:
+在 `1.0.0` 及更新版本, mirai-core 通过 gradle 依赖的 `api` 方式暴露了如下依赖库:
 
 - `kotlin-stdlib`: Kotlin 标准库, 版本至少为 1.3.72
 - `kotlin-reflect`: Kotlin 反射, 版本至少为 1.3.72
-- `kotlinx-coroutines-core`: Kotlin 协程, 版本至少为 1.3.5
+- `kotlinx-coroutines-core`: Kotlin 协程, 版本至少为 1.3.7
 - `kotlinx-serialization-runtime`: Kotlin 序列化运行时, 和 JSON 序列化, 版本至少为 0.20.0
 - `kotlinx-serialization-protobuf`: Kotlin ProtocolBuffers 序列化, 版本至少为 0.20.0
 - `kotlinx-io`: Kotlin IO, 版本至少为 0.1.16 (此库非常不稳定, 不建议使用它)
 - `kotlinx-coroutines-io`: Kotlin 异步 IO, 版本至少为 0.1.16 (此库非常不稳定, 不建议使用它)
 - `kotlinx-atomicfu`: Kotlin 原子操作, 版本至少为 0.14.2
-- `ktor-client-core`, `ktor-network`, `ktor-client-cio`: Ktor HTTP
+- `ktor-client-core`, `ktor-network`, `ktor-client-cio`: Ktor HTTP, 版本至少为 1.3.2
 
 在 JVM, mirai 使用 `"org.bouncycastle:bcprov-jdk15on:1.64"` 进行密匙计算.
 

+ 18 - 11
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/QQAndroidBot.common.kt

@@ -705,7 +705,13 @@ internal abstract class QQAndroidBotBase constructor(
 
     @LowLevelAPI
     @MiraiExperimentalAPI
-    override suspend fun _lowLevelSolveNewFriendRequestEvent(eventId: Long, fromId: Long, fromNick: String, accept: Boolean, blackList: Boolean) {
+    override suspend fun _lowLevelSolveNewFriendRequestEvent(
+        eventId: Long,
+        fromId: Long,
+        fromNick: String,
+        accept: Boolean,
+        blackList: Boolean
+    ) {
         network.apply {
             NewContact.SystemMsgNewFriend.Action(
                 bot.client,
@@ -761,16 +767,17 @@ internal abstract class QQAndroidBotBase constructor(
                 accept = accept,
                 blackList = blackList
             ).sendWithoutExpect()
-            groups[groupId].apply {
-                members.delegate.addLast(newMember(object : MemberInfo {
-                    override val nameCard: String get() = ""
-                    override val permission: MemberPermission get() = MemberPermission.MEMBER
-                    override val specialTitle: String get() = ""
-                    override val muteTimestamp: Int get() = 0
-                    override val uin: Long get() = fromId
-                    override val nick: String get() = fromNick
-                }))
-            }
+            if (accept ?: return)
+                groups[groupId].apply {
+                    members.delegate.addLast(newMember(object : MemberInfo {
+                        override val nameCard: String get() = ""
+                        override val permission: MemberPermission get() = MemberPermission.MEMBER
+                        override val specialTitle: String get() = ""
+                        override val muteTimestamp: Int get() = 0
+                        override val uin: Long get() = fromId
+                        override val nick: String get() = fromNick
+                    }))
+                }
         }
     }