From 885ae7806bb052d53a83ffbf3430f077d8e63d72 Mon Sep 17 00:00:00 2001 From: Him188 Date: Tue, 24 Dec 2019 01:50:04 +0800 Subject: [PATCH] Add wiki --- README.md | 81 ++----------------------------------------------------- 1 file changed, 2 insertions(+), 79 deletions(-) diff --git a/README.md b/README.md index b63cde137..d5c66cd2c 100644 --- a/README.md +++ b/README.md @@ -257,82 +257,5 @@ Mirai 中所有的消息均为对象化的 [Message](mirai-core/src/commonMain/k 您无需记忆用法. 在监听事件后的事件处理过程中, 您可调用扩展 `image.send()` 来发送图片. 或是调用 `image.upload()` 来上传并得到一个类型为 `Image` 的 `Message` 以便于发送组合类型的消息 -#### Image JVM - -对于 JVM 平台, Mirai 提供额外的足以应对大多数情况的扩展函数: -[ExternalImageJvm](mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/utils/ExternalImageJvm.kt) -若有必要, 这些函数将会创建临时文件以避免使用内存缓存图片 -以下内容中, `IMAGE` 可替换为 `ExternalImage`, `BufferedImage`, `File`, `InputStream`, `URL` 或 `Input` (来自 `kotlinx.io`) - -转为 `ExternalImage` -- `suspend IMAGE.toExternalImage():ExternalImage` - -直接发送 -- `suspend IMAGE.sendAsImageTo(Contact)` -- `suspend Contact.sendImage(IMAGE)` - -转为 Message -- `suspend IMAGE.uploadAsImage(Contact)` -- `suspend Contact.upload(IMAGE)` - -### Event - -#### Subscription - -[查看相关监听代码](mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/Subscribers.kt) - -您可以通过顶层 (top-level) 方法 `subscribeXXX` 对某个事件进行监听, 其中 `XXX` 可以是 - - Always (不断监听) - - Once (一次监听) - - Until / While (条件监听) - -例: -```kotlin -subscribeAlways{ - //it: FriendMessageEvent -} -``` - -#### Message Event - -对于消息事件, Mirai 还提供了更强大的 DSL 监听方式. -[MessageSubscribersBuilder](mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/MessageSubscribers.kt#L140) -可用条件方法为: - - case (内容相等) - - contains - - startsWith - - endsWith - - sentBy (特定发送者) - -```kotlin -// 监听所有群和好友消息 -subscribeMessages {// this: MessageSubscribersBuilder - case("你好"){ - // this: SenderAndMessage - // message: MessageChain - // sender: QQ - // it: String (来自 MessageChain.toString) - // group: Group (如果是群消息) - reply("你好!")// reply将发送给这个事件的主体(群消息的群, 好友消息的好友) - } - - replyCase("你好"){ "你好!" } // lambda 的返回值将会作为回复消息 - - "Hello" reply "World" // 收到 "Hello" 回复 "World" -} -``` - -当然, 您也可以仅监听来自群或好友的消息 -```kotlin -// 监听所有好友消息 -subscribeFriendMessages { } -//监听所有群消息 -subscribeGroupMessages { } -``` - -另外, 由于 Mirai 可同时维护多个机器人账号, Mirai 也提供了对单个机器人的事件的监听. -为了限制只监听来自某个机器人账号的事件, 您只需要在 `subscribeMessages` 前添加 `bot.` 将其修改为调用 `Bot` 下的扩展方法. -例: -```kotlin -bot.subscribeMessages { } -``` +## Wiki +在 [WiKi](https://github.com/mamoe/mirai/wiki/Development-Guide---Kotlin) 中查看各类帮助 \ No newline at end of file