1
0
mirror of https://github.com/mamoe/mirai.git synced 2025-04-25 04:50:26 +08:00

Update docs

This commit is contained in:
Him188 2019-10-15 19:02:57 +08:00
parent fdd9db65b9
commit f9daee0379
2 changed files with 17 additions and 7 deletions
mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event
mirai-demos/mirai-demo-1/src/main/java/demo1

View File

@ -11,7 +11,8 @@ enum class ListeningStatus {
STOPPED
}
/* 顶层方法 */
// region 顶层方法
inline fun <reified E : Event> subscribe(noinline handler: suspend (E) -> ListeningStatus) = E::class.subscribe(handler)
@ -30,7 +31,10 @@ inline fun <reified E : Event> subscribeWhileFalse(noinline listener: suspend (E
inline fun <reified E : Event> subscribeWhileTrue(noinline listener: suspend (E) -> Boolean) = E::class.subscribeWhileTrue(listener)
inline fun <reified E : Event> subscribeWhileNull(noinline listener: suspend (E) -> Any?) = E::class.subscribeWhileNull(listener)
/* KClass 的扩展方法, 不推荐 */
// endregion
// region KClass 的扩展方法 (不推荐)
fun <E : Event> KClass<E>.subscribe(handler: suspend (E) -> ListeningStatus) = this.subscribeInternal(Handler(handler))
@ -49,7 +53,9 @@ fun <E : Event> KClass<E>.subscribeWhileFalse(listener: suspend (E) -> Boolean)
fun <E : Event> KClass<E>.subscribeWhileTrue(listener: suspend (E) -> Boolean) = subscribeWhile(true, listener)
fun <E : Event> KClass<E>.subscribeWhileNull(listener: suspend (E) -> Any?) = subscribeWhile(null, listener)
/* ListenerBuilder DSL */
// endregion
// region ListenerBuilder DSL
/**
* 监听一个事件. 可同时进行多种方式的监听
@ -105,3 +111,5 @@ inline class ListenerBuilder<out E : Event>(
fun once(block: suspend (E) -> Unit) = handler { block(it); ListeningStatus.STOPPED }
}
// endregion

View File

@ -20,8 +20,8 @@ import kotlin.system.exitProcess
suspend fun main() {
val bot = Bot(BotAccount(//填写你的账号
qqNumber = 1994701021,
password = "asdhim188666"
qqNumber = 1994701121,
password = "abcdefg"
), Console())
bot.login {
@ -65,7 +65,7 @@ suspend fun main() {
}
}
//通过 KClass 扩展方式监听事件
//通过 KClass 扩展方式监听事件(不推荐)
GroupMessageEvent::class.subscribeAlways {
when {
it.message.contains("复读") -> it.reply(it.message)
@ -74,7 +74,7 @@ suspend fun main() {
//DSL 监听
FriendMessageEvent::class.subscribeAll {
subscribeAll<FriendMessageEvent> {
always {
//获取第一个纯文本消息
val firstText = it.message.first<PlainText>()
@ -82,6 +82,8 @@ suspend fun main() {
}
}
demo2()
//由于使用的是协程, main函数执行完后就会结束程序.
delay(Long.MAX_VALUE)//永远等待, 以测试事件
}