diff --git a/docs/guide_getting_started.md b/docs/guide_getting_started.md index 3cd88b1db..f705ccefd 100644 --- a/docs/guide_getting_started.md +++ b/docs/guide_getting_started.md @@ -69,7 +69,7 @@ JDK要求6以上 ### 4 Try Bot - 在src/main文件夹下新建文件夹,命名为```kotlin``` -- 在```kotlin```下新建包(在```kotlin```文件夹上右键-```New```-```Packages```) 包名为```net.mamoe.mirai.simpleloader``` +- 在```kotlin```下新建包(在```kotlin```文件夹上右键-```New```-```Package```) 包名为```net.mamoe.mirai.simpleloader``` - 在包下新建kotlin文件```MyLoader.kt``` @@ -103,9 +103,9 @@ suspend fun main() { - 本例的功能中,在任意群内任意成员发送包含“舔”字或“刘老板”字样的消息,MiraiBot会回复“刘老板太强了” - 至此,简单的入门已经结束,下面可根据不同的需求参阅wiki进行功能的添加。 +下面,可以尝试对不同事件进行监听[Mirai Guide - Subscribe Events](/docs/guide_subscribe_events.md) ### 此外,还可以使用Maven作为包管理工具 本项目推荐使用gradle,因此不提供详细入门指导 diff --git a/docs/guide_subscribe_events.md b/docs/guide_subscribe_events.md new file mode 100644 index 000000000..36c062890 --- /dev/null +++ b/docs/guide_subscribe_events.md @@ -0,0 +1,114 @@ +# Mirai Guide - Subscribe Events + +由于Mirai项目在快速推进中,因此内容时有变动,本文档的最后更新日期为```2020-02-21```,对应版本```0.17.0``` + +本页面采用Kotlin作为开发语言,**若你希望使用 Java 开发**, 请参阅: [mirai-japt](mirai-japt/README.md) + +本页面是[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/src/commonMain/kotlin/net.mamoe.mirai/event/MessageSubscribers.kt#L140),本例也采用了[MessageSubscribersBuilder](https://github.com/mamoe/mirai/wiki/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/MessageSubscribers.kt#L140)。其他具体使用方法可以参考[Wiki:Message Event](https://github.com/mamoe/mirai/wiki/Development-Guide---Kotlin#Message-Event)部分。 + + + +## 事件-Event + +上一节中提到的```Message Event```仅仅是众多```Event```的这一种,其他```Event```有群员加入群,离开群,私聊等等... + +具体doc暂不提供,现可翻阅源码[**BotEvents.kt**](https://github.com/mamoe/mirai/blob/master/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/events/BotEvents.kt),查看注释。当前事件仍在扩充中,可能有一定不足。 + +下面我们开始示例对一些事件进行监听。 + + + +## 尝试监听事件-Try Subscribing Events + +### 监听加群事件 + +在代码中的```miraiBot.join()```前添加 + +```kotlin +miraiBot.subscribeAlways { + it.group.sendMessage("欢迎 ${it.member.nameCardOrNick} 加入本群!") +} +``` + +本段语句监听了加入群的事件。 + +### 监听禁言事件 + +在代码中添加 + +```kotlin +miraiBot.subscribeAlways (){ + it.group.sendMessage("恭喜老哥 ${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.event.subscribeMessages +import net.mamoe.mirai.contact.nameCardOrNick +import net.mamoe.mirai.contact.sendMessage +import net.mamoe.mirai.event.events.MemberJoinEvent +import net.mamoe.mirai.event.events.MemberMuteEvent +import net.mamoe.mirai.event.subscribeAlways + +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 { + it.group.sendMessage("欢迎 ${it.member.nameCardOrNick} 加入本群!") + } + miraiBot.subscribeAlways (){ + it.group.sendMessage("恭喜老哥 ${it.member.nameCardOrNick} 喜提禁言套餐一份") + } + miraiBot.join() // 等待 Bot 离线, 避免主线程退出 +} +``` + diff --git a/mirai-api-http/EventType_CN.md b/mirai-api-http/EventType_CN.md index 91ff953cc..678dcabdc 100644 --- a/mirai-api-http/EventType_CN.md +++ b/mirai-api-http/EventType_CN.md @@ -105,7 +105,7 @@ ```json5 { "type": "BotMuteEvent", - "durationSeconds": "600", + "durationSeconds": 600, "operator": { "id": 123456789, "memberName": "我是管理员",