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

Add easier shortcuts

This commit is contained in:
Him188 2019-11-25 14:05:09 +08:00
parent 00f33120ec
commit 828a47941c
2 changed files with 5 additions and 16 deletions
mirai-core/src/commonMain/kotlin/net.mamoe.mirai
mirai-demos/mirai-demo-1/src/main/java/demo/subscribe

View File

@ -99,13 +99,9 @@ suspend inline fun Bot.alsoLogin(noinline configuration: BotConfiguration.() ->
/**
* 使用默认的配置 ([BotConfiguration.Default]) 登录, 返回 [this]
*/
@UseExperimental(ExperimentalContracts::class)
suspend inline fun Bot.alsoLogin(lazyMessageWhenLoginFailed: (LoginResult) -> String): Bot {
contract {
callsInPlace(lazyMessageWhenLoginFailed, InvocationKind.AT_MOST_ONCE)
}
suspend inline fun Bot.alsoLogin(message: String): Bot {
return this.apply {
login().requireSuccess(lazyMessageWhenLoginFailed)
login().requireSuccess { message } // requireSuccess is inline, so no performance waste
}
}

View File

@ -6,17 +6,15 @@ import kotlinx.coroutines.delay
import kotlinx.coroutines.withTimeoutOrNull
import net.mamoe.mirai.Bot
import net.mamoe.mirai.BotAccount
import net.mamoe.mirai.alsoLogin
import net.mamoe.mirai.contact.QQ
import net.mamoe.mirai.event.*
import net.mamoe.mirai.login
import net.mamoe.mirai.message.*
import net.mamoe.mirai.network.protocol.tim.packet.action.uploadImage
import net.mamoe.mirai.network.protocol.tim.packet.event.FriendMessage
import net.mamoe.mirai.network.protocol.tim.packet.event.GroupMessage
import net.mamoe.mirai.network.protocol.tim.packet.login.ifFail
import net.mamoe.mirai.utils.suspendToExternalImage
import java.io.File
import kotlin.system.exitProcess
private fun readTestAccount(): BotAccount? {
val file = File("testAccount.txt")
@ -39,14 +37,9 @@ suspend fun main() {
id = 1994701121u,
password = "123456"
)
)
// 覆盖默认的配置
bot.login {
).alsoLogin {
// 覆盖默认的配置
randomDeviceName = false
}.ifFail {
bot.logger.error("Login failed: $it")
exitProcess(1)
}
bot.messageDSL()