From eb80a4836b80904cf6d323afe6137eb7e3e80746 Mon Sep 17 00:00:00 2001 From: Him188 <Him188@mamoe.net> Date: Mon, 26 Apr 2021 20:06:49 +0800 Subject: [PATCH] Remove all unstable kotlin.Duration usages --- buildSrc/src/main/kotlin/ProjectConfigure.kt | 1 - .../src/commonMain/kotlin/contact/NormalMember.kt | 2 +- .../network/components/BotOfflineEventMonitor.kt | 8 ++++---- .../network/components/KeyRefreshProcessor.kt | 13 ++++++------- 4 files changed, 11 insertions(+), 13 deletions(-) diff --git a/buildSrc/src/main/kotlin/ProjectConfigure.kt b/buildSrc/src/main/kotlin/ProjectConfigure.kt index ca98ff9e1..e41a22e01 100644 --- a/buildSrc/src/main/kotlin/ProjectConfigure.kt +++ b/buildSrc/src/main/kotlin/ProjectConfigure.kt @@ -125,7 +125,6 @@ val experimentalAnnotations = arrayOf( "kotlin.RequiresOptIn", "kotlin.contracts.ExperimentalContracts", "kotlin.experimental.ExperimentalTypeInference", - "kotlin.ExperimentalUnsignedTypes", "kotlinx.serialization.ExperimentalSerializationApi", diff --git a/mirai-core-api/src/commonMain/kotlin/contact/NormalMember.kt b/mirai-core-api/src/commonMain/kotlin/contact/NormalMember.kt index ffc87b3d6..f166ec59a 100644 --- a/mirai-core-api/src/commonMain/kotlin/contact/NormalMember.kt +++ b/mirai-core-api/src/commonMain/kotlin/contact/NormalMember.kt @@ -186,7 +186,7 @@ public val UserOrBot.nameCardOrNick: String public suspend inline fun NormalMember.mute(duration: Duration) { require(duration.toDouble(DurationUnit.DAYS) <= 30) { "duration must be at most 1 month" } require(duration.toDouble(DurationUnit.SECONDS) > 0) { "duration must be greater than 0 second" } - this.mute(duration.toLong(DurationUnit.SECONDS).toInt()) + this.mute(duration.toDouble(DurationUnit.SECONDS).toInt()) } @OptIn(ExperimentalTime::class) diff --git a/mirai-core/src/commonMain/kotlin/network/components/BotOfflineEventMonitor.kt b/mirai-core/src/commonMain/kotlin/network/components/BotOfflineEventMonitor.kt index 3aac0c109..387075b34 100644 --- a/mirai-core/src/commonMain/kotlin/network/components/BotOfflineEventMonitor.kt +++ b/mirai-core/src/commonMain/kotlin/network/components/BotOfflineEventMonitor.kt @@ -25,8 +25,8 @@ import net.mamoe.mirai.internal.network.handler.NetworkHandler import net.mamoe.mirai.internal.network.handler.NetworkHandler.State import net.mamoe.mirai.utils.castOrNull import net.mamoe.mirai.utils.info -import net.mamoe.mirai.utils.toHumanReadableString -import kotlin.time.measureTime +import net.mamoe.mirai.utils.millisToHumanReadableString +import kotlin.system.measureTimeMillis /** * Handles [BotOfflineEvent] @@ -92,14 +92,14 @@ internal class BotOfflineEventMonitorImpl : BotOfflineEventMonitor { if (event.reconnect) { bot.launch { val success: Boolean - val time = measureTime { + val time = measureTimeMillis { success = kotlin.runCatching { bot.login() // selector will create new NH to replace the old, closed one, with some further comprehensive considerations. For example, limitation for attempts. }.isSuccess } if (success) { - bot.logger.info { "Reconnected successfully in ${time.toHumanReadableString()}." } + bot.logger.info { "Reconnected successfully in ${time.millisToHumanReadableString()}." } } } } diff --git a/mirai-core/src/commonMain/kotlin/network/components/KeyRefreshProcessor.kt b/mirai-core/src/commonMain/kotlin/network/components/KeyRefreshProcessor.kt index 7e227bbc3..d1370e0ec 100644 --- a/mirai-core/src/commonMain/kotlin/network/components/KeyRefreshProcessor.kt +++ b/mirai-core/src/commonMain/kotlin/network/components/KeyRefreshProcessor.kt @@ -17,9 +17,8 @@ import net.mamoe.mirai.internal.network.protocol.packet.sendAndExpect import net.mamoe.mirai.network.LoginFailedException import net.mamoe.mirai.utils.MiraiLogger import net.mamoe.mirai.utils.info -import net.mamoe.mirai.utils.toHumanReadableString -import kotlin.time.minutes -import kotlin.time.seconds +import net.mamoe.mirai.utils.millisToHumanReadableString +import net.mamoe.mirai.utils.minutesToMillis internal interface KeyRefreshProcessor { suspend fun keyRefreshLoop(handler: NetworkHandler) @@ -39,8 +38,8 @@ internal class KeyRefreshProcessorImpl( while (isActive) { client.wLoginSigInfo.vKey.run { //由过期时间最短的且不会被skey更换更新的vkey计算重新登录的时间 - val delay = (expireTime - creationTime).toInt().seconds - 5.minutes - logger.info { "Scheduled refresh login session in ${delay.toHumanReadableString()}." } + val delay = (expireTime - creationTime).times(1000) - 5.minutesToMillis + logger.info { "Scheduled refresh login session in ${delay.millisToHumanReadableString()}." } delay(delay) } runCatching { @@ -53,8 +52,8 @@ internal class KeyRefreshProcessorImpl( launch(CoroutineName("Key Refresh Scheduler")) { while (isActive) { client.wLoginSigInfo.sKey.run { - val delay = (expireTime - creationTime).seconds - 5.minutes - logger.info { "Scheduled key refresh in ${delay.toHumanReadableString()}." } + val delay = (expireTime - creationTime).times(1000) - 5.minutesToMillis + logger.info { "Scheduled key refresh in ${delay.millisToHumanReadableString()}." } delay(delay) } runCatching {