Commit d3c950a1 authored by Him188's avatar Him188

Merge remote-tracking branch 'origin/master'

parents 5dbc9b30 c489cd48
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
```groovy ```groovy
dependencies { 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" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
testCompile group: 'junit', name: 'junit', version: '4.12' testCompile group: 'junit', name: 'junit', version: '4.12'
} }
...@@ -78,6 +78,9 @@ package net.mamoe.mirai.simpleloader ...@@ -78,6 +78,9 @@ package net.mamoe.mirai.simpleloader
import kotlinx.coroutines.* import kotlinx.coroutines.*
import net.mamoe.mirai.Bot import net.mamoe.mirai.Bot
import net.mamoe.mirai.alsoLogin 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 import net.mamoe.mirai.event.subscribeMessages
suspend fun main() { suspend fun main() {
...@@ -87,11 +90,11 @@ suspend fun main() { ...@@ -87,11 +90,11 @@ suspend fun main() {
miraiBot.subscribeMessages { miraiBot.subscribeMessages {
"你好" reply "你好!" "你好" reply "你好!"
case("at me") { case("at me") {
reply(sender.at() + " 给爷爬 ") reply(At(sender as Member) + " 给爷爬 ")
} }
(contains("舔") or contains("刘老板")) { (contains("舔") or contains("刘老板")) {
"刘老板太强了".reply() reply("刘老板太强了")
} }
} }
miraiBot.join() // 等待 Bot 离线, 避免主线程退出 miraiBot.join() // 等待 Bot 离线, 避免主线程退出
......
# Mirai Guide - Quick Start # Mirai Guide - Quick Start
由于 mirai 项目在快速推进中,因此内容时有变动,本文档的最后更新日期为```2020/5/11```,对应版本```1.0-RC2-1``` 由于 mirai 项目在快速推进中,因此内容时有变动,本文档的最后更新日期为```2020/6/22```,对应版本```1.0.2```
本文适用于对 Kotlin 较熟悉的开发者, 本文适用于对 Kotlin 较熟悉的开发者,
使用 mirai 作为第三方依赖库引用到任意一个 Kotlin, Java 或其他 JVM 平台的项目 使用 mirai 作为第三方依赖库引用到任意一个 Kotlin, Java 或其他 JVM 平台的项目
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
## 构建需求 ## 构建需求
- Kotlin 1.3.71 (必须) - Kotlin 1.3.72 (必须)
- JDK 6 或更高 (必须) - JDK 6 或更高 (必须)
## 获取 Demo ## 获取 Demo
......
...@@ -20,15 +20,12 @@ ...@@ -20,15 +20,12 @@
mirai 项目整体由 核心 (`mirai-core`) 与 控制台(`mirai-console`) 组成. 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` 设计为一个 **`支持库`**, 意味着它可以被独立依赖, 在任意项目中使用. 详见下文.
- `mirai-core-qqandroid` 继承 `mirai-core`, 是 Android QQ 协议的实现. 在使用时只需参考 `mirai-core` 的 API.
- `mirai-serialization` 依赖 `mirai-core`, 是 mirai-core 的序列化支持模块. 提供 `Message` 类型的序列化支持与相关 [mirai 码](mirai-code-specification.md) 支持. - `mirai-serialization` 依赖 `mirai-core`, 是 mirai-core 的序列化支持模块. 提供 `Message` 类型的序列化支持与相关 [mirai 码](mirai-code-specification.md) 支持.
此模块自 mirai `1.1.0` 起可用, 引用方法同 `mirai-core`. 此模块自 mirai `1.1.0` 起可用, 引用方法同 `mirai-core`.
...@@ -122,17 +119,17 @@ Mirai 通过某种方式同时生成了桥梁方法 `public void sendMessage(Mes ...@@ -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-stdlib`: Kotlin 标准库, 版本至少为 1.3.72
- `kotlin-reflect`: 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-runtime`: Kotlin 序列化运行时, 和 JSON 序列化, 版本至少为 0.20.0
- `kotlinx-serialization-protobuf`: Kotlin ProtocolBuffers 序列化, 版本至少为 0.20.0 - `kotlinx-serialization-protobuf`: Kotlin ProtocolBuffers 序列化, 版本至少为 0.20.0
- `kotlinx-io`: Kotlin IO, 版本至少为 0.1.16 (此库非常不稳定, 不建议使用它) - `kotlinx-io`: Kotlin IO, 版本至少为 0.1.16 (此库非常不稳定, 不建议使用它)
- `kotlinx-coroutines-io`: Kotlin 异步 IO, 版本至少为 0.1.16 (此库非常不稳定, 不建议使用它) - `kotlinx-coroutines-io`: Kotlin 异步 IO, 版本至少为 0.1.16 (此库非常不稳定, 不建议使用它)
- `kotlinx-atomicfu`: Kotlin 原子操作, 版本至少为 0.14.2 - `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"` 进行密匙计算. 在 JVM, mirai 使用 `"org.bouncycastle:bcprov-jdk15on:1.64"` 进行密匙计算.
......
...@@ -705,7 +705,13 @@ internal abstract class QQAndroidBotBase constructor( ...@@ -705,7 +705,13 @@ internal abstract class QQAndroidBotBase constructor(
@LowLevelAPI @LowLevelAPI
@MiraiExperimentalAPI @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 { network.apply {
NewContact.SystemMsgNewFriend.Action( NewContact.SystemMsgNewFriend.Action(
bot.client, bot.client,
...@@ -761,16 +767,17 @@ internal abstract class QQAndroidBotBase constructor( ...@@ -761,16 +767,17 @@ internal abstract class QQAndroidBotBase constructor(
accept = accept, accept = accept,
blackList = blackList blackList = blackList
).sendWithoutExpect() ).sendWithoutExpect()
groups[groupId].apply { if (accept ?: return)
members.delegate.addLast(newMember(object : MemberInfo { groups[groupId].apply {
override val nameCard: String get() = "" members.delegate.addLast(newMember(object : MemberInfo {
override val permission: MemberPermission get() = MemberPermission.MEMBER override val nameCard: String get() = ""
override val specialTitle: String get() = "" override val permission: MemberPermission get() = MemberPermission.MEMBER
override val muteTimestamp: Int get() = 0 override val specialTitle: String get() = ""
override val uin: Long get() = fromId override val muteTimestamp: Int get() = 0
override val nick: String get() = fromNick override val uin: Long get() = fromId
})) override val nick: String get() = fromNick
} }))
}
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment