diff --git a/.github/workflows/snapshots.yml b/.github/workflows/snapshots.yml index fd15a4ae1e4..e9ef94f6f22 100644 --- a/.github/workflows/snapshots.yml +++ b/.github/workflows/snapshots.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/setup-java@v2 with: distribution: 'adopt' - java-version: '11' + java-version: '17' - run: chmod -R 777 * diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 90f6db10b1e..a44c374225e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,7 +6,9 @@ mirai 欢迎一切形式的代码贡献。你可以通过以下几种途径向 m ## 主仓库 `mirai-core` -### 构建 +### 构建项目 + +#### 更新 submodules mirai git 仓库含有 submodule, 请在 clone 时使用 `--recursive` 参数, 或在 clone 后使用如下命令更新 submodule: ```shell script @@ -14,12 +16,21 @@ git submodule init git submodule update ``` +#### 安装 JDK + +mirai 2.9.0 在如下环境测试可以编译: +- macOS 12.0.1, AdoptOpenJDK 17 aarch64, Gradle 7.2, Kotlin 1.6.0 +- macOS 12.0.1, Amazon Corretto 11 amd64, Gradle 7.2, Kotlin 1.6.0 + +若在其他环境下无法正常编译, 请尝试选择上述一个环境配置. + +#### 运行 Gradle 构建 + 项目首次初始化和构建可能要花费较长时间。 - 要构建项目, 请运行 `gradlew assemble` -- 要运行测试, 请运行 `gradlew test` +- 要运行测试, 请运行 `gradlew check` - 要构建项目并运行测试, 请运行 `gradlew build` -- 若要添加一个 suspend 函数, 请务必考虑 Java 兼容性, 使用 [kotlin-jvm-blocking-bridge](https://github.com/mamoe/kotlin-jvm-blocking-bridge/blob/master/README-chs.md) ### 分支 @@ -80,6 +91,7 @@ git submodule update - 使用 IntelliJ IDEA 或 Android Studio - 安装 IDE 插件 [kotlin-jvm-blocking-bridge](https://github.com/Him188/kotlin-jvm-blocking-bridge/blob/master/README-chs.md#%E5%AE%89%E8%A3%85-intellij-idea-%E6%88%96-android-studio-%E6%8F%92%E4%BB%B6) +- 若要添加一个 suspend 函数, 请为它添加 `@JvmBlockingBridge`, 使用 [kotlin-jvm-blocking-bridge](https://github.com/mamoe/kotlin-jvm-blocking-bridge/blob/master/README-chs.md) - 在 mirai-core 和 mirai-core-api 使用纯 Kotlin 实现 - 尽量不要引用新的库 - 遵守 Kotlin 官方代码规范(提交前使用 IDE 格式化代码 (commit 时勾选 'Reformat code')) diff --git a/binary-compatibility-validator/android/api/binary-compatibility-validator-android.api b/binary-compatibility-validator/android/api/binary-compatibility-validator-android.api index aa545bc3d1f..8db04558ab7 100644 --- a/binary-compatibility-validator/android/api/binary-compatibility-validator-android.api +++ b/binary-compatibility-validator/android/api/binary-compatibility-validator-android.api @@ -1750,7 +1750,7 @@ public abstract interface annotation class net/mamoe/mirai/event/EventHandler : public final class net/mamoe/mirai/event/EventKt { public static final fun broadcast (Lnet/mamoe/mirai/event/Event;)Lnet/mamoe/mirai/event/Event; - public static final synthetic fun broadcast (Lnet/mamoe/mirai/event/Event;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun broadcast (Lnet/mamoe/mirai/event/Event;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun getEventDisabled ()Z public static final fun setEventDisabled (Z)V } diff --git a/binary-compatibility-validator/android/build.gradle.kts b/binary-compatibility-validator/android/build.gradle.kts index cd416daae20..b6fbebda719 100644 --- a/binary-compatibility-validator/android/build.gradle.kts +++ b/binary-compatibility-validator/android/build.gradle.kts @@ -14,7 +14,7 @@ plugins { kotlin("plugin.serialization") id("kotlinx-atomicfu") - id("net.mamoe.kotlin-jvm-blocking-bridge") + id("me.him188.kotlin-jvm-blocking-bridge") } description = "Mirai API binary compatibility validator" diff --git a/binary-compatibility-validator/api/binary-compatibility-validator.api b/binary-compatibility-validator/api/binary-compatibility-validator.api index 86af8c6681e..798abe74879 100644 --- a/binary-compatibility-validator/api/binary-compatibility-validator.api +++ b/binary-compatibility-validator/api/binary-compatibility-validator.api @@ -1750,7 +1750,7 @@ public abstract interface annotation class net/mamoe/mirai/event/EventHandler : public final class net/mamoe/mirai/event/EventKt { public static final fun broadcast (Lnet/mamoe/mirai/event/Event;)Lnet/mamoe/mirai/event/Event; - public static final synthetic fun broadcast (Lnet/mamoe/mirai/event/Event;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static final fun broadcast (Lnet/mamoe/mirai/event/Event;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static final fun getEventDisabled ()Z public static final fun setEventDisabled (Z)V } diff --git a/binary-compatibility-validator/build.gradle.kts b/binary-compatibility-validator/build.gradle.kts index 61246859e0a..590c251344b 100644 --- a/binary-compatibility-validator/build.gradle.kts +++ b/binary-compatibility-validator/build.gradle.kts @@ -14,7 +14,7 @@ plugins { kotlin("plugin.serialization") id("kotlinx-atomicfu") - id("net.mamoe.kotlin-jvm-blocking-bridge") + id("me.him188.kotlin-jvm-blocking-bridge") } description = "Mirai API binary compatibility validator" diff --git a/build.gradle.kts b/build.gradle.kts index 0cb695b255d..632effbebda 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -40,7 +40,7 @@ plugins { kotlin("plugin.serialization") version Versions.kotlinCompiler id("org.jetbrains.dokka") version Versions.dokka // id("org.jetbrains.dokka") version Versions.dokka - id("net.mamoe.kotlin-jvm-blocking-bridge") version Versions.blockingBridge + id("me.him188.kotlin-jvm-blocking-bridge") version Versions.blockingBridge id("com.gradle.plugin-publish") version "0.12.0" apply false } @@ -92,7 +92,7 @@ allprojects { runCatching { blockingBridge { - unitCoercion = net.mamoe.kjbb.compiler.UnitCoercion.COMPATIBILITY + unitCoercion = me.him188.kotlin.jvm.blocking.bridge.compiler.UnitCoercion.COMPATIBILITY } } diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 2bd0a700b77..1a34a383607 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -51,8 +51,8 @@ dependencies { api("com.github.jengelman.gradle.plugins", "shadow", version("shadow")) api("org.jetbrains.kotlin", "kotlin-gradle-plugin", version("kotlinCompiler")) - api("org.jetbrains.kotlin", "kotlin-compiler-embeddable", version("kotlinCompiler")) - api(ktor("client-okhttp", "1.4.3")) +// api("org.jetbrains.kotlin", "kotlin-compiler-embeddable", version("kotlinCompiler")) +// api(ktor("client-okhttp", "1.4.3")) api("com.android.tools.build", "gradle", version("androidGradlePlugin")) api(asm("tree")) api(asm("util")) diff --git a/buildSrc/src/main/kotlin/JvmPublishing.kt b/buildSrc/src/main/kotlin/JvmPublishing.kt index 666bc614f72..9451e4d2534 100644 --- a/buildSrc/src/main/kotlin/JvmPublishing.kt +++ b/buildSrc/src/main/kotlin/JvmPublishing.kt @@ -38,7 +38,7 @@ fun Project.configureRemoteRepos() { // sonatype val keys = SecretKeys.getCache(project) repositories { - if (System.getenv("MIRAI_IS_SNAPSHOTS_PUBLISHING").toBoolean()) { + if (System.getenv("MIRAI_IS_SNAPSHOTS_PUBLISHING")?.toBoolean() == true) { maven { name = "MiraiRepo" setUrl(System.getenv("SNAPSHOTS_PUBLISHING_URL")) diff --git a/buildSrc/src/main/kotlin/ProjectConfigure.kt b/buildSrc/src/main/kotlin/ProjectConfigure.kt index 10c107e3269..a95af3d4e0d 100644 --- a/buildSrc/src/main/kotlin/ProjectConfigure.kt +++ b/buildSrc/src/main/kotlin/ProjectConfigure.kt @@ -32,7 +32,7 @@ fun Project.configureJvmTarget() { val defaultVer = JavaVersion.VERSION_1_8 tasks.withType(KotlinJvmCompile::class.java) { - kotlinOptions.languageVersion = "1.5" + kotlinOptions.languageVersion = "1.6" kotlinOptions.jvmTarget = defaultVer.toString() kotlinOptions.freeCompilerArgs += "-Xjvm-default=all" } @@ -151,7 +151,7 @@ val experimentalAnnotations = arrayOf( "net.mamoe.mirai.console.util.ConsoleInternalApi", "net.mamoe.mirai.console.util.ConsoleExperimentalApi", - "kotlinx.io.core.internal.DangerousInternalIoApi", + "kotlinx.io.core.internal.DangerousInternalIoApi" ) fun Project.configureKotlinExperimentalUsages() { diff --git a/buildSrc/src/main/kotlin/PublishingGpgSign.kt b/buildSrc/src/main/kotlin/PublishingGpgSign.kt index e0a52c3c4c0..d3da23d5d45 100644 --- a/buildSrc/src/main/kotlin/PublishingGpgSign.kt +++ b/buildSrc/src/main/kotlin/PublishingGpgSign.kt @@ -32,7 +32,7 @@ open class GPGSignMavenArtifact( } class NameCounter(val name: String) { - var counter = 0 + private var counter = 0 val nextName: String get() = name + if (counter == 0) { counter = 1; "" @@ -44,6 +44,7 @@ class NameCounter(val name: String) { object PublishingAccess { fun getMetadataArtifacts(publication: MavenPublication): Collection { if (publication is DefaultMavenPublication) { + @Suppress("UNCHECKED_CAST") return DefaultMavenPublication::class.java.getDeclaredField("metadataArtifacts") .also { it.isAccessible = true } .get(publication) as Collection diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index 33d2f2788c9..7288a9867ac 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -14,27 +14,27 @@ import org.gradle.kotlin.dsl.exclude import org.jetbrains.kotlin.gradle.plugin.KotlinDependencyHandler object Versions { - const val project = "2.9.0" + const val project = "2.10.0-RC" const val core = project const val console = project const val consoleTerminal = project - const val kotlinCompiler = "1.5.30" - const val kotlinStdlib = "1.5.30" + const val kotlinCompiler = "1.6.0" + const val kotlinStdlib = kotlinCompiler const val dokka = "1.6.0" - const val coroutines = "1.5.1" - const val atomicFU = "0.16.3" + const val coroutines = "1.6.0" + const val atomicFU = "0.17.0" const val serialization = "1.2.2" - const val ktor = "1.5.4" + const val ktor = "1.6.5" const val binaryValidator = "0.4.0" const val io = "0.1.16" const val coroutinesIo = "0.1.16" - const val blockingBridge = "1.10.6-1530.2" + const val blockingBridge = "2.0.0-160.3" const val androidGradlePlugin = "4.1.1" const val android = "4.1.1.4" @@ -54,9 +54,9 @@ object Versions { // If you the versions below, you need to sync changes to mirai-console/buildSrc/src/main/kotlin/Versions.kt const val yamlkt = "0.10.2" - const val intellijGradlePlugin = "1.1" - const val kotlinIntellijPlugin = "211-1.5.20-release-284-IJ7442.40" // keep to newest as kotlinCompiler - const val intellij = "2021.1.3" // don't update easily unless you want your disk space -= 500MB + const val intellijGradlePlugin = "1.3.0" +// const val kotlinIntellijPlugin = "211-1.5.20-release-284-IJ7442.40" // keep to newest as kotlinCompiler + const val intellij = "2021.3" // don't update easily unless you want your disk space -= 500MB } diff --git a/buildSrc/src/main/kotlin/analyzes/AndroidApiLevelCheck.kt b/buildSrc/src/main/kotlin/analyzes/AndroidApiLevelCheck.kt index c5347a0cce3..7ceef053c1c 100644 --- a/buildSrc/src/main/kotlin/analyzes/AndroidApiLevelCheck.kt +++ b/buildSrc/src/main/kotlin/analyzes/AndroidApiLevelCheck.kt @@ -12,9 +12,7 @@ package analyzes import groovy.util.Node -import groovy.util.XmlParser import org.gradle.api.Project -import org.objectweb.asm.ClassReader import org.objectweb.asm.Type import org.objectweb.asm.tree.ClassNode import org.objectweb.asm.tree.FieldInsnNode @@ -212,7 +210,8 @@ object AndroidApiLevelCheck { val apiVersionsFile = project.rootProject.projectDir.resolve("buildSrc/src/main/resources/androidutil/api-versions.xml") val classesInfos = mutableMapOf() - XmlParser().parse(apiVersionsFile).children().forEach { classNode -> + @Suppress("DEPRECATION") + groovy.util.XmlParser().parse(apiVersionsFile).children().forEach { classNode -> classNode as Node if (classNode.name() == "class") { val fieldInfos = mutableMapOf() diff --git a/gradle.properties b/gradle.properties index d6d206af13c..7b10f90aa71 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,13 +6,11 @@ # # https://github.com/mamoe/mirai/blob/master/LICENSE # - # style guide kotlin.code.style=official # config kotlin.incremental.multiplatform=true -kotlin.parallel.tasks.in.project=true -org.gradle.jvmargs=-Xmx4096m -Dfile.encoding=UTF-8 +org.gradle.jvmargs=-Xmx4096m -Dfile.encoding=UTF-8 --illegal-access=permit -Dkotlin.daemon.jvm.options=--illegal-access=permit --add-opens java.base/java.util=ALL-UNNAMED org.gradle.parallel=true org.gradle.vfs.watch=true kotlin.mpp.enableGranularSourceSetsMetadata=true @@ -22,5 +20,5 @@ systemProp.org.gradle.internal.publish.checksums.insecure=true gnsp.disableApplyOnlyOnRootProjectEnforcement=true # We may target 15 with Kotlin 1.5 IR mirai.android.target.api.level=24 - +# Enable if you want to use mavenLocal for both Gradle plugin and project dependencies resolutions. systemProp.use.maven.local=false \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index f10c7268da3..5b681bca7e8 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -6,7 +6,7 @@ # # https://github.com/mamoe/mirai/blob/master/LICENSE # -distributionUrl=https\://services.gradle.org/distributions/gradle-7.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.1-all.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStorePath=wrapper/dists diff --git a/mirai-console/backend/integration-test/src/AbstractTestPointAsPlugin.kt b/mirai-console/backend/integration-test/src/AbstractTestPointAsPlugin.kt index 61735b7d196..262a62be0c7 100644 --- a/mirai-console/backend/integration-test/src/AbstractTestPointAsPlugin.kt +++ b/mirai-console/backend/integration-test/src/AbstractTestPointAsPlugin.kt @@ -12,6 +12,7 @@ package net.mamoe.console.integrationtest import net.mamoe.mirai.console.extension.PluginComponentStorage import net.mamoe.mirai.console.plugin.jvm.JvmPluginDescription import net.mamoe.mirai.console.plugin.jvm.KotlinPlugin +import net.mamoe.mirai.utils.createInstanceOrNull /** * IntegrationTest 测试单元 (Plugin mode) @@ -29,7 +30,6 @@ public abstract class AbstractTestPointAsPlugin : AbstractTestPoint() { protected open fun KotlinPlugin.onDisable0() {} - @Suppress("unused") @PublishedApi internal abstract class TestPointPluginImpl( @@ -43,7 +43,9 @@ public abstract class AbstractTestPointAsPlugin : AbstractTestPoint() { @PublishedApi internal constructor( impl: Class - ) : this(impl.kotlin.objectInstance ?: impl.newInstance()) + ) : this( + impl.kotlin.createInstanceOrNull() ?: impl.getConstructor().newInstance() + ) override fun onDisable() { try { diff --git a/mirai-console/backend/mirai-console/build.gradle.kts b/mirai-console/backend/mirai-console/build.gradle.kts index 8681441f667..069ef4e4733 100644 --- a/mirai-console/backend/mirai-console/build.gradle.kts +++ b/mirai-console/backend/mirai-console/build.gradle.kts @@ -17,7 +17,7 @@ plugins { kotlin("plugin.serialization") id("java") `maven-publish` - id("net.mamoe.kotlin-jvm-blocking-bridge") + id("me.him188.kotlin-jvm-blocking-bridge") } version = Versions.console diff --git a/mirai-console/backend/mirai-console/src/command/CommandManager.kt b/mirai-console/backend/mirai-console/src/command/CommandManager.kt index 87a0def1df8..47d22ef14f5 100644 --- a/mirai-console/backend/mirai-console/src/command/CommandManager.kt +++ b/mirai-console/backend/mirai-console/src/command/CommandManager.kt @@ -15,7 +15,7 @@ package net.mamoe.mirai.console.command -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.console.command.CommandManager.INSTANCE.executeCommand import net.mamoe.mirai.console.command.descriptor.ExperimentalCommandDescriptors import net.mamoe.mirai.console.command.parse.CommandCall diff --git a/mirai-console/backend/mirai-console/src/command/CommandSender.kt b/mirai-console/backend/mirai-console/src/command/CommandSender.kt index 4314f0aac9d..f70bd0321c8 100644 --- a/mirai-console/backend/mirai-console/src/command/CommandSender.kt +++ b/mirai-console/backend/mirai-console/src/command/CommandSender.kt @@ -15,7 +15,7 @@ package net.mamoe.mirai.console.command import kotlinx.coroutines.CoroutineScope -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.Bot import net.mamoe.mirai.console.MiraiConsole import net.mamoe.mirai.console.command.CommandSender.Companion.asCommandSender diff --git a/mirai-console/backend/mirai-console/src/internal/MiraiConsoleImplementationBridge.kt b/mirai-console/backend/mirai-console/src/internal/MiraiConsoleImplementationBridge.kt index f7620b8d36b..0101677576c 100644 --- a/mirai-console/backend/mirai-console/src/internal/MiraiConsoleImplementationBridge.kt +++ b/mirai-console/backend/mirai-console/src/internal/MiraiConsoleImplementationBridge.kt @@ -61,6 +61,8 @@ import java.time.format.DateTimeFormatter import kotlin.contracts.InvocationKind import kotlin.contracts.contract import kotlin.coroutines.CoroutineContext +import kotlin.reflect.KProperty +import kotlin.reflect.KProperty0 /** * [MiraiConsole] 公开 API 与前端实现的连接桥. @@ -71,6 +73,10 @@ internal object MiraiConsoleImplementationBridge : CoroutineScope, MiraiConsoleI override val pluginCenter: PluginCenter get() = throw UnsupportedOperationException("PluginCenter is not supported yet") private val instance: MiraiConsoleImplementation get() = MiraiConsoleImplementation.getInstance() + + // FIXME: 12/12/2021 Workaround for compiler regression, should remove when using Kotlin compiller 1.6.20 + private operator fun KProperty0.getValue(thisRef: Any?, property: KProperty<*>): V = this.get() + override val buildDate: Instant by MiraiConsoleBuildConstants::buildDate override val version: SemVersion by MiraiConsoleBuildConstants::version override val rootPath: Path by instance::rootPath diff --git a/mirai-console/backend/mirai-console/src/internal/data/reflectionUtils.kt b/mirai-console/backend/mirai-console/src/internal/data/reflectionUtils.kt index 785c508eafa..99789b871b1 100644 --- a/mirai-console/backend/mirai-console/src/internal/data/reflectionUtils.kt +++ b/mirai-console/backend/mirai-console/src/internal/data/reflectionUtils.kt @@ -13,6 +13,7 @@ package net.mamoe.mirai.console.internal.data import net.mamoe.mirai.console.data.PluginData import net.mamoe.mirai.console.data.ValueName +import net.mamoe.mirai.utils.createInstanceOrNull import kotlin.reflect.* import kotlin.reflect.full.findAnnotation import kotlin.reflect.full.isSubclassOf @@ -63,14 +64,6 @@ internal fun KType.classifierAsKClassOrNull() = when (val t = classifier) { else -> null } as KClass? -@JvmSynthetic -internal fun KClass.createInstanceOrNull(): T? { - val noArgsConstructor = constructors.singleOrNull { it.parameters.all(KParameter::isOptional) } - ?: return null - - return noArgsConstructor.callBy(emptyMap()) -} - @JvmSynthetic internal fun KClass<*>.findValueName(): String = findAnnotation()?.value diff --git a/mirai-console/backend/mirai-console/src/internal/data/valueFromKTypeImpl.kt b/mirai-console/backend/mirai-console/src/internal/data/valueFromKTypeImpl.kt index dc2b8cd7d80..ace3df43cba 100644 --- a/mirai-console/backend/mirai-console/src/internal/data/valueFromKTypeImpl.kt +++ b/mirai-console/backend/mirai-console/src/internal/data/valueFromKTypeImpl.kt @@ -16,6 +16,7 @@ import net.mamoe.mirai.console.data.PluginData import net.mamoe.mirai.console.data.SerializableValue.Companion.serializableValueWith import net.mamoe.mirai.console.data.SerializerAwareValue import net.mamoe.mirai.console.data.valueFromKType +import net.mamoe.mirai.utils.createInstanceOrNull import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.ConcurrentMap import kotlin.contracts.contract diff --git a/mirai-console/backend/mirai-console/src/internal/util/PluginServiceHelper.kt b/mirai-console/backend/mirai-console/src/internal/util/PluginServiceHelper.kt index d0cd6e4ffe1..2cd1823fb6e 100644 --- a/mirai-console/backend/mirai-console/src/internal/util/PluginServiceHelper.kt +++ b/mirai-console/backend/mirai-console/src/internal/util/PluginServiceHelper.kt @@ -12,8 +12,8 @@ package net.mamoe.mirai.console.internal.util import net.mamoe.mirai.console.internal.data.cast -import net.mamoe.mirai.console.internal.data.createInstanceOrNull import net.mamoe.mirai.console.internal.plugin.BuiltInJvmPluginLoaderImpl +import net.mamoe.mirai.utils.createInstanceOrNull import java.lang.reflect.Modifier import java.util.* import kotlin.reflect.KClass diff --git a/mirai-console/backend/mirai-console/src/util/ConsoleInput.kt b/mirai-console/backend/mirai-console/src/util/ConsoleInput.kt index 899f866eb6f..ef8ed0cce1a 100644 --- a/mirai-console/backend/mirai-console/src/util/ConsoleInput.kt +++ b/mirai-console/backend/mirai-console/src/util/ConsoleInput.kt @@ -13,7 +13,7 @@ package net.mamoe.mirai.console.util -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.console.MiraiConsole import net.mamoe.mirai.console.internal.util.ConsoleInputImpl diff --git a/mirai-console/backend/mirai-console/src/util/MessageScope.kt b/mirai-console/backend/mirai-console/src/util/MessageScope.kt index 2194312f371..04f1ea00793 100644 --- a/mirai-console/backend/mirai-console/src/util/MessageScope.kt +++ b/mirai-console/backend/mirai-console/src/util/MessageScope.kt @@ -17,7 +17,7 @@ package net.mamoe.mirai.console.util import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.firstOrNull import kotlinx.coroutines.flow.fold -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.console.command.CommandSender import net.mamoe.mirai.contact.Contact import net.mamoe.mirai.contact.User diff --git a/mirai-console/tools/intellij-plugin/build.gradle.kts b/mirai-console/tools/intellij-plugin/build.gradle.kts index f6dedd2b073..ee7b01ccdc6 100644 --- a/mirai-console/tools/intellij-plugin/build.gradle.kts +++ b/mirai-console/tools/intellij-plugin/build.gradle.kts @@ -64,6 +64,8 @@ fun File.resolveMkdir(relative: String): File { kotlin.target.compilations.all { kotlinOptions { + apiVersion = "1.4" + languageVersion = "1.4" jvmTarget = "11" } } diff --git a/mirai-console/tools/intellij-plugin/src/diagnostics/ContextualParametersChecker.kt b/mirai-console/tools/intellij-plugin/src/diagnostics/ContextualParametersChecker.kt index aaceef753fa..f2c23cc0f61 100644 --- a/mirai-console/tools/intellij-plugin/src/diagnostics/ContextualParametersChecker.kt +++ b/mirai-console/tools/intellij-plugin/src/diagnostics/ContextualParametersChecker.kt @@ -28,7 +28,6 @@ import net.mamoe.mirai.console.intellij.util.RequirementParser import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor import org.jetbrains.kotlin.diagnostics.Diagnostic import org.jetbrains.kotlin.idea.inspections.collections.isCalling -import org.jetbrains.kotlin.psi.KtElement import org.jetbrains.kotlin.psi.KtReferenceExpression import org.jetbrains.kotlin.psi.ValueArgument import org.jetbrains.kotlin.resolve.calls.checkers.CallChecker @@ -116,7 +115,7 @@ class ContextualParametersChecker : CallChecker { "插件 Id '$value' 无效. 插件 Id 必须同时包含 groupId 和插件名称. $syntax" ) - val lowercaseId = value.lowercase() + val lowercaseId = value.toLowerCase() if (ID_REGEX.matchEntire(value) == null) { return ILLEGAL_PLUGIN_DESCRIPTION.on( @@ -133,7 +132,7 @@ class ContextualParametersChecker : CallChecker { fun checkPluginName(inspectionTarget: PsiElement, value: String): Diagnostic? { if (value.isBlank()) return ILLEGAL_PLUGIN_DESCRIPTION.on(inspectionTarget, "插件名不能为空") - val lowercaseName = value.lowercase() + val lowercaseName = value.toLowerCase() FORBIDDEN_ID_NAMES.firstOrNull { it == lowercaseName }?.let { illegal -> return ILLEGAL_PLUGIN_DESCRIPTION.on(inspectionTarget, "'$illegal' 不允许作为插件名. 确保插件名不完全是这个名称") } diff --git a/mirai-core-all/build.gradle.kts b/mirai-core-all/build.gradle.kts index b8fee75bbca..35ae7470d4e 100644 --- a/mirai-core-all/build.gradle.kts +++ b/mirai-core-all/build.gradle.kts @@ -13,7 +13,7 @@ plugins { kotlin("jvm") kotlin("plugin.serialization") `maven-publish` - id("net.mamoe.kotlin-jvm-blocking-bridge") + id("me.him188.kotlin-jvm-blocking-bridge") } version = Versions.project @@ -25,6 +25,6 @@ dependencies { api(project(":mirai-core-utils")) } -if (!System.getenv("MIRAI_IS_SNAPSHOTS_PUBLISHING").toBoolean()) { +if (System.getenv("MIRAI_IS_SNAPSHOTS_PUBLISHING")?.toBoolean() != true) { configurePublishing("mirai-core-all") } \ No newline at end of file diff --git a/mirai-core-api/build.gradle.kts b/mirai-core-api/build.gradle.kts index 49ea51b914f..ad5d22fbfc5 100644 --- a/mirai-core-api/build.gradle.kts +++ b/mirai-core-api/build.gradle.kts @@ -16,7 +16,7 @@ plugins { //id("kotlinx-atomicfu") id("signing") - id("net.mamoe.kotlin-jvm-blocking-bridge") + id("me.him188.kotlin-jvm-blocking-bridge") `maven-publish` } diff --git a/mirai-core-api/src/commonMain/kotlin/Bot.kt b/mirai-core-api/src/commonMain/kotlin/Bot.kt index 14b2073937f..e65f80e6ffe 100644 --- a/mirai-core-api/src/commonMain/kotlin/Bot.kt +++ b/mirai-core-api/src/commonMain/kotlin/Bot.kt @@ -13,7 +13,7 @@ package net.mamoe.mirai import kotlinx.coroutines.* -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.contact.* import net.mamoe.mirai.event.EventChannel import net.mamoe.mirai.event.events.BotEvent diff --git a/mirai-core-api/src/commonMain/kotlin/IMirai.kt b/mirai-core-api/src/commonMain/kotlin/IMirai.kt index a8b283f6d4b..109d5e6e01a 100644 --- a/mirai-core-api/src/commonMain/kotlin/IMirai.kt +++ b/mirai-core-api/src/commonMain/kotlin/IMirai.kt @@ -16,7 +16,7 @@ package net.mamoe.mirai import io.ktor.client.* import io.ktor.client.engine.okhttp.* -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.contact.* import net.mamoe.mirai.data.UserProfile import net.mamoe.mirai.event.Event diff --git a/mirai-core-api/src/commonMain/kotlin/LowLevelApiAccessor.kt b/mirai-core-api/src/commonMain/kotlin/LowLevelApiAccessor.kt index 8f5e6289f80..36f5983fb12 100644 --- a/mirai-core-api/src/commonMain/kotlin/LowLevelApiAccessor.kt +++ b/mirai-core-api/src/commonMain/kotlin/LowLevelApiAccessor.kt @@ -12,7 +12,7 @@ package net.mamoe.mirai import kotlinx.coroutines.Job -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.contact.* import net.mamoe.mirai.data.* import net.mamoe.mirai.utils.MiraiExperimentalApi diff --git a/mirai-core-api/src/commonMain/kotlin/contact/AudioSupported.kt b/mirai-core-api/src/commonMain/kotlin/contact/AudioSupported.kt index 77138f32016..296468cc057 100644 --- a/mirai-core-api/src/commonMain/kotlin/contact/AudioSupported.kt +++ b/mirai-core-api/src/commonMain/kotlin/contact/AudioSupported.kt @@ -11,7 +11,7 @@ package net.mamoe.mirai.contact -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.message.data.Audio import net.mamoe.mirai.message.data.OfflineAudio import net.mamoe.mirai.utils.ExternalResource diff --git a/mirai-core-api/src/commonMain/kotlin/contact/Contact.kt b/mirai-core-api/src/commonMain/kotlin/contact/Contact.kt index e3424cc1d4e..a28a863b7aa 100644 --- a/mirai-core-api/src/commonMain/kotlin/contact/Contact.kt +++ b/mirai-core-api/src/commonMain/kotlin/contact/Contact.kt @@ -14,7 +14,7 @@ package net.mamoe.mirai.contact import kotlinx.coroutines.CoroutineScope -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.Bot import net.mamoe.mirai.IMirai import net.mamoe.mirai.Mirai diff --git a/mirai-core-api/src/commonMain/kotlin/contact/Friend.kt b/mirai-core-api/src/commonMain/kotlin/contact/Friend.kt index 37dacdea150..a02f410b184 100644 --- a/mirai-core-api/src/commonMain/kotlin/contact/Friend.kt +++ b/mirai-core-api/src/commonMain/kotlin/contact/Friend.kt @@ -13,7 +13,7 @@ package net.mamoe.mirai.contact import kotlinx.coroutines.CoroutineScope -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.Bot import net.mamoe.mirai.contact.roaming.RoamingSupported import net.mamoe.mirai.event.events.* diff --git a/mirai-core-api/src/commonMain/kotlin/contact/Group.kt b/mirai-core-api/src/commonMain/kotlin/contact/Group.kt index 5e621963a88..81766be7627 100644 --- a/mirai-core-api/src/commonMain/kotlin/contact/Group.kt +++ b/mirai-core-api/src/commonMain/kotlin/contact/Group.kt @@ -13,7 +13,7 @@ package net.mamoe.mirai.contact import kotlinx.coroutines.CoroutineScope -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.Bot import net.mamoe.mirai.contact.announcement.Announcements import net.mamoe.mirai.event.events.* diff --git a/mirai-core-api/src/commonMain/kotlin/contact/Member.kt b/mirai-core-api/src/commonMain/kotlin/contact/Member.kt index e8b5d0cabd3..caa6f1f10db 100644 --- a/mirai-core-api/src/commonMain/kotlin/contact/Member.kt +++ b/mirai-core-api/src/commonMain/kotlin/contact/Member.kt @@ -12,7 +12,7 @@ package net.mamoe.mirai.contact -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.Bot import net.mamoe.mirai.event.events.* import net.mamoe.mirai.message.MessageReceipt diff --git a/mirai-core-api/src/commonMain/kotlin/contact/NormalMember.kt b/mirai-core-api/src/commonMain/kotlin/contact/NormalMember.kt index 18570a85ec7..156f6f7689b 100644 --- a/mirai-core-api/src/commonMain/kotlin/contact/NormalMember.kt +++ b/mirai-core-api/src/commonMain/kotlin/contact/NormalMember.kt @@ -11,7 +11,7 @@ package net.mamoe.mirai.contact -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.Bot import net.mamoe.mirai.event.events.* import net.mamoe.mirai.message.MessageReceipt diff --git a/mirai-core-api/src/commonMain/kotlin/contact/Stranger.kt b/mirai-core-api/src/commonMain/kotlin/contact/Stranger.kt index 357307be307..3fc4af6e065 100644 --- a/mirai-core-api/src/commonMain/kotlin/contact/Stranger.kt +++ b/mirai-core-api/src/commonMain/kotlin/contact/Stranger.kt @@ -13,7 +13,7 @@ package net.mamoe.mirai.contact import kotlinx.coroutines.CoroutineScope -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.Bot import net.mamoe.mirai.event.events.* import net.mamoe.mirai.message.MessageReceipt diff --git a/mirai-core-api/src/commonMain/kotlin/contact/User.kt b/mirai-core-api/src/commonMain/kotlin/contact/User.kt index 5c4243398d2..dbbacb21c37 100644 --- a/mirai-core-api/src/commonMain/kotlin/contact/User.kt +++ b/mirai-core-api/src/commonMain/kotlin/contact/User.kt @@ -13,7 +13,7 @@ package net.mamoe.mirai.contact import kotlinx.coroutines.CoroutineScope -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.Bot import net.mamoe.mirai.Mirai import net.mamoe.mirai.data.UserProfile diff --git a/mirai-core-api/src/commonMain/kotlin/contact/announcement/Announcement.kt b/mirai-core-api/src/commonMain/kotlin/contact/announcement/Announcement.kt index a8a93e1462e..e8cab2df5a3 100644 --- a/mirai-core-api/src/commonMain/kotlin/contact/announcement/Announcement.kt +++ b/mirai-core-api/src/commonMain/kotlin/contact/announcement/Announcement.kt @@ -12,7 +12,7 @@ package net.mamoe.mirai.contact.announcement -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.contact.Group import net.mamoe.mirai.contact.PermissionDeniedException import net.mamoe.mirai.contact.announcement.Announcement.Companion.publishAnnouncement diff --git a/mirai-core-api/src/commonMain/kotlin/contact/announcement/Announcements.kt b/mirai-core-api/src/commonMain/kotlin/contact/announcement/Announcements.kt index 5dc9ab3c1a6..f5b16281b13 100644 --- a/mirai-core-api/src/commonMain/kotlin/contact/announcement/Announcements.kt +++ b/mirai-core-api/src/commonMain/kotlin/contact/announcement/Announcements.kt @@ -14,7 +14,7 @@ package net.mamoe.mirai.contact.announcement import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.toList -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.contact.Group import net.mamoe.mirai.contact.PermissionDeniedException import net.mamoe.mirai.utils.ExternalResource diff --git a/mirai-core-api/src/commonMain/kotlin/contact/announcement/OnlineAnnouncement.kt b/mirai-core-api/src/commonMain/kotlin/contact/announcement/OnlineAnnouncement.kt index d330ae833a4..0df92e3507a 100644 --- a/mirai-core-api/src/commonMain/kotlin/contact/announcement/OnlineAnnouncement.kt +++ b/mirai-core-api/src/commonMain/kotlin/contact/announcement/OnlineAnnouncement.kt @@ -12,7 +12,7 @@ package net.mamoe.mirai.contact.announcement -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.Bot import net.mamoe.mirai.contact.Group import net.mamoe.mirai.contact.NormalMember diff --git a/mirai-core-api/src/commonMain/kotlin/contact/file/AbsoluteFile.kt b/mirai-core-api/src/commonMain/kotlin/contact/file/AbsoluteFile.kt index 50bb566b13a..bdab714793a 100644 --- a/mirai-core-api/src/commonMain/kotlin/contact/file/AbsoluteFile.kt +++ b/mirai-core-api/src/commonMain/kotlin/contact/file/AbsoluteFile.kt @@ -13,7 +13,7 @@ package net.mamoe.mirai.contact.file import kotlinx.io.errors.IOException -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.contact.PermissionDeniedException import net.mamoe.mirai.message.data.FileMessage import net.mamoe.mirai.utils.NotStableForInheritance diff --git a/mirai-core-api/src/commonMain/kotlin/contact/file/AbsoluteFileFolder.kt b/mirai-core-api/src/commonMain/kotlin/contact/file/AbsoluteFileFolder.kt index 71d1f299187..22628abf06b 100644 --- a/mirai-core-api/src/commonMain/kotlin/contact/file/AbsoluteFileFolder.kt +++ b/mirai-core-api/src/commonMain/kotlin/contact/file/AbsoluteFileFolder.kt @@ -13,7 +13,7 @@ package net.mamoe.mirai.contact.file import kotlinx.io.errors.IOException -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.contact.FileSupported import net.mamoe.mirai.contact.PermissionDeniedException import net.mamoe.mirai.utils.NotStableForInheritance diff --git a/mirai-core-api/src/commonMain/kotlin/contact/file/AbsoluteFolder.kt b/mirai-core-api/src/commonMain/kotlin/contact/file/AbsoluteFolder.kt index aa441e74286..e05ab314e97 100644 --- a/mirai-core-api/src/commonMain/kotlin/contact/file/AbsoluteFolder.kt +++ b/mirai-core-api/src/commonMain/kotlin/contact/file/AbsoluteFolder.kt @@ -13,7 +13,7 @@ package net.mamoe.mirai.contact.file import kotlinx.coroutines.flow.Flow -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.contact.PermissionDeniedException import net.mamoe.mirai.utils.ExternalResource import net.mamoe.mirai.utils.JavaFriendlyAPI diff --git a/mirai-core-api/src/commonMain/kotlin/contact/file/RemoteFiles.kt b/mirai-core-api/src/commonMain/kotlin/contact/file/RemoteFiles.kt index 67a93b33fa3..f1215b27cf6 100644 --- a/mirai-core-api/src/commonMain/kotlin/contact/file/RemoteFiles.kt +++ b/mirai-core-api/src/commonMain/kotlin/contact/file/RemoteFiles.kt @@ -13,7 +13,7 @@ package net.mamoe.mirai.contact.file import kotlinx.coroutines.flow.Flow -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.contact.FileSupported import net.mamoe.mirai.contact.PermissionDeniedException import net.mamoe.mirai.utils.ExternalResource diff --git a/mirai-core-api/src/commonMain/kotlin/contact/roaming/RoamingMessages.kt b/mirai-core-api/src/commonMain/kotlin/contact/roaming/RoamingMessages.kt index 1a96f2666a6..159d9ac1118 100644 --- a/mirai-core-api/src/commonMain/kotlin/contact/roaming/RoamingMessages.kt +++ b/mirai-core-api/src/commonMain/kotlin/contact/roaming/RoamingMessages.kt @@ -12,7 +12,7 @@ package net.mamoe.mirai.contact.roaming import kotlinx.coroutines.flow.Flow -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.message.data.MessageChain import net.mamoe.mirai.message.data.MessageSource import net.mamoe.mirai.utils.JavaFriendlyAPI diff --git a/mirai-core-api/src/commonMain/kotlin/contact/roaming/RoamingSupported.kt b/mirai-core-api/src/commonMain/kotlin/contact/roaming/RoamingSupported.kt index a9cb8341c8e..dc3f07ac615 100644 --- a/mirai-core-api/src/commonMain/kotlin/contact/roaming/RoamingSupported.kt +++ b/mirai-core-api/src/commonMain/kotlin/contact/roaming/RoamingSupported.kt @@ -11,7 +11,7 @@ package net.mamoe.mirai.contact.roaming -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.contact.Contact /** diff --git a/mirai-core-api/src/commonMain/kotlin/data/RequestEventData.kt b/mirai-core-api/src/commonMain/kotlin/data/RequestEventData.kt index 517ef364f3f..03136a13296 100644 --- a/mirai-core-api/src/commonMain/kotlin/data/RequestEventData.kt +++ b/mirai-core-api/src/commonMain/kotlin/data/RequestEventData.kt @@ -13,7 +13,7 @@ package net.mamoe.mirai.data import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.Bot import net.mamoe.mirai.Mirai import net.mamoe.mirai.event.events.BotInvitedJoinGroupRequestEvent diff --git a/mirai-core-api/src/commonMain/kotlin/event/Event.kt b/mirai-core-api/src/commonMain/kotlin/event/Event.kt index 82c24762d03..863dbe9f57e 100644 --- a/mirai-core-api/src/commonMain/kotlin/event/Event.kt +++ b/mirai-core-api/src/commonMain/kotlin/event/Event.kt @@ -11,9 +11,9 @@ package net.mamoe.mirai.event -import kotlinx.coroutines.runBlocking import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.Mirai import net.mamoe.mirai.event.events.BotEvent import net.mamoe.mirai.event.events.MessageEvent @@ -21,7 +21,6 @@ import net.mamoe.mirai.internal.event.VerboseEvent import net.mamoe.mirai.internal.event.callAndRemoveIfRequired import net.mamoe.mirai.internal.network.Packet import net.mamoe.mirai.utils.* -import net.mamoe.mirai.utils.JavaFriendlyAPI /** * 可被监听的类, 可以是任何 class 或 object. @@ -143,7 +142,7 @@ public interface CancellableEvent : Event { * * @see __broadcastJava Java 使用 */ -@JvmSynthetic +@JvmBlockingBridge public suspend fun E.broadcast(): E = _EventBroadcast.implementation.broadcastPublic(this) /** @@ -206,21 +205,6 @@ internal open class _EventBroadcast { private val topLevelEventLogger by lazy { MiraiLogger.Factory.create(Event::class, "EventPipeline") } } -/** - * 在 Java 广播一个事件的唯一途径. - * - * 调用方法: `EventKt.broadcast(event)` - */ -@Suppress("FunctionName") -@JvmName("broadcast") -@JavaFriendlyAPI -public fun E.__broadcastJava(): E = apply { - if (this is BroadcastControllable && !this.shouldBroadcast) { - return@apply - } - runBlocking { this@__broadcastJava.broadcast() } -} - /** * 设置为 `true` 以关闭事件. * 所有的 `subscribe` 都能正常添加到监听器列表, 但所有的广播都会直接返回. diff --git a/mirai-core-api/src/commonMain/kotlin/event/events/friend.kt b/mirai-core-api/src/commonMain/kotlin/event/events/friend.kt index f8b9e9e5943..83642967dbb 100644 --- a/mirai-core-api/src/commonMain/kotlin/event/events/friend.kt +++ b/mirai-core-api/src/commonMain/kotlin/event/events/friend.kt @@ -13,7 +13,7 @@ package net.mamoe.mirai.event.events -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.Bot import net.mamoe.mirai.Mirai import net.mamoe.mirai.contact.Friend diff --git a/mirai-core-api/src/commonMain/kotlin/event/events/group.kt b/mirai-core-api/src/commonMain/kotlin/event/events/group.kt index 064a500519b..624d6939842 100644 --- a/mirai-core-api/src/commonMain/kotlin/event/events/group.kt +++ b/mirai-core-api/src/commonMain/kotlin/event/events/group.kt @@ -16,7 +16,7 @@ package net.mamoe.mirai.event.events -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.Bot import net.mamoe.mirai.Mirai import net.mamoe.mirai.contact.* diff --git a/mirai-core-api/src/commonMain/kotlin/message/MessageReceipt.kt b/mirai-core-api/src/commonMain/kotlin/message/MessageReceipt.kt index 311738ef398..528a99e35f8 100644 --- a/mirai-core-api/src/commonMain/kotlin/message/MessageReceipt.kt +++ b/mirai-core-api/src/commonMain/kotlin/message/MessageReceipt.kt @@ -12,7 +12,7 @@ package net.mamoe.mirai.message -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.Bot import net.mamoe.mirai.IMirai import net.mamoe.mirai.Mirai diff --git a/mirai-core-api/src/commonMain/kotlin/message/action/AsyncRecallResult.kt b/mirai-core-api/src/commonMain/kotlin/message/action/AsyncRecallResult.kt index 598baa16d7e..1a44c0fd90b 100644 --- a/mirai-core-api/src/commonMain/kotlin/message/action/AsyncRecallResult.kt +++ b/mirai-core-api/src/commonMain/kotlin/message/action/AsyncRecallResult.kt @@ -12,7 +12,7 @@ package net.mamoe.mirai.message.action import kotlinx.coroutines.* -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.message.data.MessageSource import net.mamoe.mirai.message.data.MessageSource.Key.recallIn import java.util.concurrent.CompletableFuture diff --git a/mirai-core-api/src/commonMain/kotlin/message/action/Nudge.kt b/mirai-core-api/src/commonMain/kotlin/message/action/Nudge.kt index 869010e3257..29731e54721 100644 --- a/mirai-core-api/src/commonMain/kotlin/message/action/Nudge.kt +++ b/mirai-core-api/src/commonMain/kotlin/message/action/Nudge.kt @@ -8,7 +8,7 @@ */ package net.mamoe.mirai.message.action -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.Bot import net.mamoe.mirai.Mirai import net.mamoe.mirai.contact.* diff --git a/mirai-core-api/src/commonMain/kotlin/message/data/FileMessage.kt b/mirai-core-api/src/commonMain/kotlin/message/data/FileMessage.kt index a42bd0b7baa..ab511b4aa07 100644 --- a/mirai-core-api/src/commonMain/kotlin/message/data/FileMessage.kt +++ b/mirai-core-api/src/commonMain/kotlin/message/data/FileMessage.kt @@ -16,7 +16,7 @@ package net.mamoe.mirai.message.data import kotlinx.serialization.KSerializer import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.Mirai import net.mamoe.mirai.contact.FileSupported import net.mamoe.mirai.contact.file.AbsoluteFile diff --git a/mirai-core-api/src/commonMain/kotlin/message/data/Image.kt b/mirai-core-api/src/commonMain/kotlin/message/data/Image.kt index 08017cb351b..0e2ce382ded 100644 --- a/mirai-core-api/src/commonMain/kotlin/message/data/Image.kt +++ b/mirai-core-api/src/commonMain/kotlin/message/data/Image.kt @@ -24,7 +24,7 @@ import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable import kotlinx.serialization.builtins.serializer import kotlinx.serialization.descriptors.buildClassSerialDescriptor -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.Bot import net.mamoe.mirai.IMirai import net.mamoe.mirai.Mirai diff --git a/mirai-core-api/src/commonMain/kotlin/message/data/MessageSource.kt b/mirai-core-api/src/commonMain/kotlin/message/data/MessageSource.kt index 4e266980deb..3975292fc88 100644 --- a/mirai-core-api/src/commonMain/kotlin/message/data/MessageSource.kt +++ b/mirai-core-api/src/commonMain/kotlin/message/data/MessageSource.kt @@ -17,7 +17,7 @@ import kotlinx.coroutines.Deferred import kotlinx.coroutines.async import kotlinx.coroutines.delay import kotlinx.serialization.Serializable -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.Bot import net.mamoe.mirai.IMirai import net.mamoe.mirai.Mirai diff --git a/mirai-core-api/src/commonMain/kotlin/utils/BotConfiguration.kt b/mirai-core-api/src/commonMain/kotlin/utils/BotConfiguration.kt index 7a8562d9da3..073eca3b7fd 100644 --- a/mirai-core-api/src/commonMain/kotlin/utils/BotConfiguration.kt +++ b/mirai-core-api/src/commonMain/kotlin/utils/BotConfiguration.kt @@ -27,7 +27,7 @@ import kotlin.coroutines.CoroutineContext import kotlin.coroutines.EmptyCoroutineContext import kotlin.coroutines.coroutineContext import kotlin.time.Duration -import kotlin.time.ExperimentalTime +import kotlin.time.Duration.Companion.milliseconds /** * [Bot] 配置. 用于 [BotFactory.newBot] @@ -69,7 +69,10 @@ public open class BotConfiguration { // open for Java ignoreUnknownKeys = true prettyPrint = true } - }.getOrElse { Json {} } + }.getOrElse { + @Suppress("JSON_FORMAT_REDUNDANT_DEFAULT") // compatible for older versions + Json {} + } /////////////////////////////////////////////////////////////////////////// // Coroutines @@ -253,14 +256,14 @@ public open class BotConfiguration { // open for Java /** * iPad - 来自MiraiGo - * + * * @since 2.8 */ IPAD, /** * MacOS - 来自MiraiGo - * + * * @since 2.8 */ MACOS, @@ -500,10 +503,9 @@ public open class BotConfiguration { // open for Java /** * 在有修改时自动保存间隔. 默认 60 秒. 在每次登录完成后有修改时都会立即保存一次. - */ - @ExperimentalTime + */ // was @ExperimentalTime before 2.9 public inline var saveInterval: Duration - @JvmSynthetic inline get() = Duration.milliseconds(saveIntervalMillis) + @JvmSynthetic inline get() = saveIntervalMillis.milliseconds @JvmSynthetic inline set(v) { saveIntervalMillis = v.inWholeMilliseconds } diff --git a/mirai-core-api/src/commonMain/kotlin/utils/ExternalResource.kt b/mirai-core-api/src/commonMain/kotlin/utils/ExternalResource.kt index b4b701b669a..52d92fef066 100644 --- a/mirai-core-api/src/commonMain/kotlin/utils/ExternalResource.kt +++ b/mirai-core-api/src/commonMain/kotlin/utils/ExternalResource.kt @@ -14,7 +14,7 @@ package net.mamoe.mirai.utils import kotlinx.atomicfu.atomic import kotlinx.coroutines.CompletableDeferred import kotlinx.coroutines.Deferred -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.Mirai import net.mamoe.mirai.contact.Contact import net.mamoe.mirai.contact.Contact.Companion.sendImage @@ -602,7 +602,7 @@ public constructor( public constructor( cleanup: ResourceCleanCallback? = null, - ): this(null, cleanup) + ) : this(null, cleanup) public fun interface ResourceCleanCallback { @Throws(IOException::class) diff --git a/mirai-core-api/src/commonMain/kotlin/utils/RemoteFile.kt b/mirai-core-api/src/commonMain/kotlin/utils/RemoteFile.kt index 39114f38673..fed1056a576 100644 --- a/mirai-core-api/src/commonMain/kotlin/utils/RemoteFile.kt +++ b/mirai-core-api/src/commonMain/kotlin/utils/RemoteFile.kt @@ -16,7 +16,7 @@ import kotlinx.coroutines.channels.SendChannel import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.emptyFlow import kotlinx.coroutines.flow.toList -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.contact.Contact import net.mamoe.mirai.contact.FileSupported import net.mamoe.mirai.contact.Group diff --git a/mirai-core-api/src/jvmTest/kotlin/event/EventLaunchUndispatchedTest.kt b/mirai-core-api/src/jvmTest/kotlin/event/EventLaunchUndispatchedTest.kt index ad1bfe5a534..46d54ffdfcc 100644 --- a/mirai-core-api/src/jvmTest/kotlin/event/EventLaunchUndispatchedTest.kt +++ b/mirai-core-api/src/jvmTest/kotlin/event/EventLaunchUndispatchedTest.kt @@ -12,7 +12,7 @@ package net.mamoe.mirai.event import kotlinx.coroutines.* -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.internal.event.EVENT_LAUNCH_UNDISPATCHED import org.junit.jupiter.api.AfterEach import org.junit.jupiter.api.Disabled diff --git a/mirai-core-api/src/jvmTest/kotlin/event/JvmMethodEventsTestJava.kt b/mirai-core-api/src/jvmTest/kotlin/event/JvmMethodEventsTestJava.kt index 07f490a6182..e719246eb94 100644 --- a/mirai-core-api/src/jvmTest/kotlin/event/JvmMethodEventsTestJava.kt +++ b/mirai-core-api/src/jvmTest/kotlin/event/JvmMethodEventsTestJava.kt @@ -10,6 +10,7 @@ package net.mamoe.mirai.event import kotlinx.coroutines.cancel +import kotlinx.coroutines.runBlocking import net.mamoe.mirai.utils.EventListenerLikeJava import net.mamoe.mirai.utils.JavaFriendlyAPI import org.junit.jupiter.api.Test @@ -24,7 +25,7 @@ internal class JvmMethodEventsTestJava : AbstractEventTest() { fun test() { val host = TestHost(called) GlobalEventChannel.registerListenerHost(host) - TestEvent().__broadcastJava() + runBlocking { TestEvent().broadcast() } assertEquals(3, called.get(), null) host.cancel() // reset listeners } diff --git a/mirai-core-api/src/jvmTest/kotlin/event/SimpleListenerHostTestJava.kt b/mirai-core-api/src/jvmTest/kotlin/event/SimpleListenerHostTestJava.kt index 9afa5ff3e07..ba1e38ff091 100644 --- a/mirai-core-api/src/jvmTest/kotlin/event/SimpleListenerHostTestJava.kt +++ b/mirai-core-api/src/jvmTest/kotlin/event/SimpleListenerHostTestJava.kt @@ -10,6 +10,7 @@ package net.mamoe.mirai.event import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.runBlocking import net.mamoe.mirai.utils.EventListenerLikeJava import net.mamoe.mirai.utils.JavaFriendlyAPI import org.junit.jupiter.api.Test @@ -34,7 +35,7 @@ internal class SimpleListenerHostTestJava : AbstractEventTest() { } val scope = CoroutineScope(EmptyCoroutineContext) scope.globalEventChannel().registerListenerHost(host) - object : AbstractEvent() {}.__broadcastJava() + runBlocking { object : AbstractEvent() {}.broadcast() } if (!called.get()) { throw AssertionError("JavaTest: SimpleListenerHost Failed.") } diff --git a/mirai-core-utils/build.gradle.kts b/mirai-core-utils/build.gradle.kts index a081cb5047d..c26c54c6aa7 100644 --- a/mirai-core-utils/build.gradle.kts +++ b/mirai-core-utils/build.gradle.kts @@ -16,7 +16,7 @@ plugins { kotlin("plugin.serialization") id("kotlinx-atomicfu") - id("net.mamoe.kotlin-jvm-blocking-bridge") + id("me.him188.kotlin-jvm-blocking-bridge") `maven-publish` } diff --git a/mirai-core-utils/src/commonMain/kotlin/Reflections.kt b/mirai-core-utils/src/commonMain/kotlin/Reflections.kt new file mode 100644 index 00000000000..920b18712ab --- /dev/null +++ b/mirai-core-utils/src/commonMain/kotlin/Reflections.kt @@ -0,0 +1,21 @@ +/* + * Copyright 2019-2021 Mamoe Technologies and contributors. + * + * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. + * Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link. + * + * https://github.com/mamoe/mirai/blob/dev/LICENSE + */ + +package net.mamoe.mirai.utils + +import kotlin.reflect.KClass +import kotlin.reflect.KParameter + +public fun KClass.createInstanceOrNull(): T? { + objectInstance?.let { return it } + val noArgsConstructor = constructors.singleOrNull { it.parameters.all(KParameter::isOptional) } + ?: return null + + return noArgsConstructor.callBy(emptyMap()) +} diff --git a/mirai-core/build.gradle.kts b/mirai-core/build.gradle.kts index f733c44a7a0..ab76907c597 100644 --- a/mirai-core/build.gradle.kts +++ b/mirai-core/build.gradle.kts @@ -15,7 +15,7 @@ plugins { kotlin("multiplatform") // id("kotlinx-atomicfu") kotlin("plugin.serialization") - id("net.mamoe.kotlin-jvm-blocking-bridge") + id("me.him188.kotlin-jvm-blocking-bridge") `maven-publish` } diff --git a/mirai-core/src/commonMain/kotlin/network/components/MessageSvcSyncer.kt b/mirai-core/src/commonMain/kotlin/network/components/MessageSvcSyncer.kt index 81ac29c96b8..75bd4ff867e 100644 --- a/mirai-core/src/commonMain/kotlin/network/components/MessageSvcSyncer.kt +++ b/mirai-core/src/commonMain/kotlin/network/components/MessageSvcSyncer.kt @@ -10,6 +10,8 @@ package net.mamoe.mirai.internal.network.components import kotlinx.coroutines.* +import kotlinx.coroutines.sync.Mutex +import kotlinx.coroutines.sync.withLock import net.mamoe.mirai.event.nextEvent import net.mamoe.mirai.internal.QQAndroidBot import net.mamoe.mirai.internal.network.component.ComponentKey @@ -23,7 +25,7 @@ import net.mamoe.mirai.utils.info import kotlin.coroutines.CoroutineContext internal interface MessageSvcSyncer { - fun startSync() + suspend fun startSync() suspend fun joinSync() companion object : ComponentKey @@ -41,12 +43,13 @@ internal class MessageSvcSyncerImpl( @Volatile private var job: Job? = null + private val lock = Mutex() + private fun initScope() { scope = parentContext.addNameHierarchically("MessageSvcSyncerImpl").childScope() } - @Synchronized - override fun startSync() { + override suspend fun startSync(): Unit = lock.withLock { scope?.cancel() initScope() job = scope!!.launch { syncMessageSvc() } @@ -65,8 +68,7 @@ internal class MessageSvcSyncerImpl( logger.info { "Syncing friend message history: Success." } } - @Synchronized - override suspend fun joinSync() { + override suspend fun joinSync(): Unit = lock.withLock { job?.join() } } \ No newline at end of file diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/richstatus/RichStatus.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/richstatus/RichStatus.kt index 814d8de5470..c0a75ac034a 100644 --- a/mirai-core/src/commonMain/kotlin/network/protocol/data/richstatus/RichStatus.kt +++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/richstatus/RichStatus.kt @@ -145,8 +145,8 @@ internal class RichStatus( while (true) { if (lastPosition < 5) return@theSwitch - val var6 = byteBuffer.getInt() - var var4 = byteBuffer.get().toIntUnsigned() + byteBuffer.getInt() + byteBuffer.get().toIntUnsigned() // var9.topicsPos.add(new Pair(var6, var3)); lastPosition -= 5 diff --git a/mirai-core/src/commonTest/kotlin/contact/file/AbsoluteFolderTest.kt b/mirai-core/src/commonTest/kotlin/contact/file/AbsoluteFolderTest.kt index b69cc9a7d9c..f28676b4e71 100644 --- a/mirai-core/src/commonTest/kotlin/contact/file/AbsoluteFolderTest.kt +++ b/mirai-core/src/commonTest/kotlin/contact/file/AbsoluteFolderTest.kt @@ -11,7 +11,7 @@ package net.mamoe.mirai.internal.contact.file -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.internal.MockBot import net.mamoe.mirai.internal.network.notice.BotAware import net.mamoe.mirai.internal.network.protocol.data.proto.GroupFileCommon diff --git a/mirai-core/src/commonTest/kotlin/network/framework/TestNetworkHandler.kt b/mirai-core/src/commonTest/kotlin/network/framework/TestNetworkHandler.kt index 27f21fa8d08..35b67c80a42 100644 --- a/mirai-core/src/commonTest/kotlin/network/framework/TestNetworkHandler.kt +++ b/mirai-core/src/commonTest/kotlin/network/framework/TestNetworkHandler.kt @@ -11,6 +11,8 @@ package net.mamoe.mirai.internal.network.framework import io.netty.channel.Channel import kotlinx.coroutines.CompletableDeferred +import kotlinx.coroutines.sync.Mutex +import kotlinx.coroutines.sync.withLock import net.mamoe.mirai.internal.QQAndroidBot import net.mamoe.mirai.internal.network.handler.NetworkHandler import net.mamoe.mirai.internal.network.handler.NetworkHandlerContext @@ -35,9 +37,9 @@ internal open class TestNetworkHandler( val resumeDeferred = CompletableDeferred() val resumeCount = AtomicInteger(0) val onResume get() = resumeDeferred.onJoin + private val mutex = Mutex() - @Synchronized - override suspend fun resumeConnection0() { + override suspend fun resumeConnection0(): Unit = mutex.withLock { resumeCount.incrementAndGet() resumeDeferred.complete(Unit) when (this.correspondingState) { diff --git a/mirai-core/src/commonTest/kotlin/network/handler/KeepAliveNetworkHandlerSelectorTest.kt b/mirai-core/src/commonTest/kotlin/network/handler/KeepAliveNetworkHandlerSelectorTest.kt index 47e82fbab5f..61d0462c858 100644 --- a/mirai-core/src/commonTest/kotlin/network/handler/KeepAliveNetworkHandlerSelectorTest.kt +++ b/mirai-core/src/commonTest/kotlin/network/handler/KeepAliveNetworkHandlerSelectorTest.kt @@ -19,7 +19,7 @@ import net.mamoe.mirai.utils.MiraiLogger import net.mamoe.mirai.utils.TestOnly import java.util.concurrent.atomic.AtomicInteger import kotlin.test.* -import kotlin.time.Duration +import kotlin.time.Duration.Companion.seconds internal val selectorLogger = MiraiLogger.Factory.create(TestSelector::class, "selector") @@ -52,7 +52,7 @@ internal class KeepAliveNetworkHandlerSelectorTest : AbstractMockNetworkHandlerT setState(State.OK) } } - runBlockingUnit(timeout = Duration.seconds(1)) { selector.awaitResumeInstance() } + runBlockingUnit(timeout = 1.seconds) { selector.awaitResumeInstance() } assertNotNull(selector.getCurrentInstanceOrNull()) } @@ -75,7 +75,7 @@ internal class KeepAliveNetworkHandlerSelectorTest : AbstractMockNetworkHandlerT selector.setCurrent(handler) assertSame(handler, selector.getCurrentInstanceOrNull()) handler.setState(State.CLOSED) - runBlockingUnit(timeout = Duration.seconds(3)) { selector.awaitResumeInstance() } + runBlockingUnit(timeout = 3.seconds) { selector.awaitResumeInstance() } assertEquals(1, selector.createInstanceCount.get()) } diff --git a/mirai-core/src/commonTest/kotlin/network/impl/netty/NettyUtilsTest.kt b/mirai-core/src/commonTest/kotlin/network/impl/netty/NettyUtilsTest.kt index d1978590059..3c918360338 100644 --- a/mirai-core/src/commonTest/kotlin/network/impl/netty/NettyUtilsTest.kt +++ b/mirai-core/src/commonTest/kotlin/network/impl/netty/NettyUtilsTest.kt @@ -19,7 +19,7 @@ import org.junit.jupiter.api.AfterAll import org.junit.jupiter.api.Test import kotlin.test.assertFailsWith import kotlin.test.assertTrue -import kotlin.time.Duration +import kotlin.time.Duration.Companion.seconds /** * @see awaitKt @@ -36,7 +36,7 @@ internal class NettyUtilsTest : AbstractTest() { } @Test - fun canAwait() = runBlockingUnit(timeout = Duration.seconds(5)) { + fun canAwait() = runBlockingUnit(timeout = 5.seconds) { val future = DefaultChannelPromise(channel) launch(start = CoroutineStart.UNDISPATCHED) { future.awaitKt() } launch { @@ -45,7 +45,7 @@ internal class NettyUtilsTest : AbstractTest() { } @Test - fun returnsImmediatelyIfCompleted() = runBlockingUnit(timeout = Duration.seconds(5)) { + fun returnsImmediatelyIfCompleted() = runBlockingUnit(timeout = 5.seconds) { val future = DefaultChannelPromise(channel) future.setSuccess() future.awaitKt() @@ -55,7 +55,7 @@ internal class NettyUtilsTest : AbstractTest() { fun testAwait() { class MyError : AssertionError("My") // coroutine debugger will modify the exception if inside coroutine - runBlockingUnit(timeout = Duration.seconds(5)) { + runBlockingUnit(timeout = 5.seconds) { val future = DefaultChannelPromise(channel) launch(start = CoroutineStart.UNDISPATCHED) { assertFailsWith { diff --git a/mirai-core/src/commonTest/kotlin/notice/processors/BotInvitedJoinTest.kt b/mirai-core/src/commonTest/kotlin/notice/processors/BotInvitedJoinTest.kt index c27531cd3d0..21f7da63a59 100644 --- a/mirai-core/src/commonTest/kotlin/notice/processors/BotInvitedJoinTest.kt +++ b/mirai-core/src/commonTest/kotlin/notice/processors/BotInvitedJoinTest.kt @@ -11,7 +11,7 @@ package net.mamoe.mirai.internal.notice.processors -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.contact.MemberPermission import net.mamoe.mirai.event.events.BotInvitedJoinGroupRequestEvent import net.mamoe.mirai.event.events.BotJoinGroupEvent diff --git a/mirai-core/src/commonTest/kotlin/notice/processors/FriendNickChangeTest.kt b/mirai-core/src/commonTest/kotlin/notice/processors/FriendNickChangeTest.kt index 1779d2095e0..1dd32d7dcd1 100644 --- a/mirai-core/src/commonTest/kotlin/notice/processors/FriendNickChangeTest.kt +++ b/mirai-core/src/commonTest/kotlin/notice/processors/FriendNickChangeTest.kt @@ -11,7 +11,7 @@ package net.mamoe.mirai.internal.notice.processors -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.event.events.FriendNickChangedEvent import net.mamoe.mirai.internal.network.protocol.data.jce.MsgInfo import net.mamoe.mirai.internal.network.protocol.data.jce.MsgType0x210 diff --git a/mirai-core/src/commonTest/kotlin/notice/processors/GroupRetrieveTest.kt b/mirai-core/src/commonTest/kotlin/notice/processors/GroupRetrieveTest.kt index 3ea8a47771c..6479a089cd7 100644 --- a/mirai-core/src/commonTest/kotlin/notice/processors/GroupRetrieveTest.kt +++ b/mirai-core/src/commonTest/kotlin/notice/processors/GroupRetrieveTest.kt @@ -10,7 +10,7 @@ package net.mamoe.mirai.internal.notice.processors -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.contact.MemberPermission import net.mamoe.mirai.event.events.BotGroupPermissionChangeEvent import net.mamoe.mirai.event.events.MemberPermissionChangeEvent diff --git a/mirai-core/src/commonTest/kotlin/notice/processors/GroupTransferTest.kt b/mirai-core/src/commonTest/kotlin/notice/processors/GroupTransferTest.kt index 095b5693a78..dec19f7a3f7 100644 --- a/mirai-core/src/commonTest/kotlin/notice/processors/GroupTransferTest.kt +++ b/mirai-core/src/commonTest/kotlin/notice/processors/GroupTransferTest.kt @@ -10,7 +10,7 @@ package net.mamoe.mirai.internal.notice.processors -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.contact.MemberPermission import net.mamoe.mirai.event.events.BotGroupPermissionChangeEvent import net.mamoe.mirai.event.events.MemberPermissionChangeEvent diff --git a/mirai-core/src/commonTest/kotlin/notice/processors/MemberAdminChangeTest.kt b/mirai-core/src/commonTest/kotlin/notice/processors/MemberAdminChangeTest.kt index 7b49d37474e..3e3d5a1e7d1 100644 --- a/mirai-core/src/commonTest/kotlin/notice/processors/MemberAdminChangeTest.kt +++ b/mirai-core/src/commonTest/kotlin/notice/processors/MemberAdminChangeTest.kt @@ -11,7 +11,7 @@ package net.mamoe.mirai.internal.notice.processors -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.contact.MemberPermission import net.mamoe.mirai.event.events.BotGroupPermissionChangeEvent import net.mamoe.mirai.event.events.MemberPermissionChangeEvent diff --git a/mirai-core/src/commonTest/kotlin/notice/processors/MemberJoinTest.kt b/mirai-core/src/commonTest/kotlin/notice/processors/MemberJoinTest.kt index f1e4b504643..a9dc858a20c 100644 --- a/mirai-core/src/commonTest/kotlin/notice/processors/MemberJoinTest.kt +++ b/mirai-core/src/commonTest/kotlin/notice/processors/MemberJoinTest.kt @@ -11,7 +11,7 @@ package net.mamoe.mirai.internal.notice.processors -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.contact.MemberPermission import net.mamoe.mirai.event.events.MemberJoinEvent import net.mamoe.mirai.event.events.MemberJoinRequestEvent diff --git a/mirai-core/src/commonTest/kotlin/notice/processors/MemberQuitTest.kt b/mirai-core/src/commonTest/kotlin/notice/processors/MemberQuitTest.kt index a12609d8714..8359c959d1e 100644 --- a/mirai-core/src/commonTest/kotlin/notice/processors/MemberQuitTest.kt +++ b/mirai-core/src/commonTest/kotlin/notice/processors/MemberQuitTest.kt @@ -11,7 +11,7 @@ package net.mamoe.mirai.internal.notice.processors -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.contact.MemberPermission import net.mamoe.mirai.event.events.MemberLeaveEvent import org.junit.jupiter.api.Test diff --git a/mirai-core/src/commonTest/kotlin/notice/processors/MessageSyncTest.kt b/mirai-core/src/commonTest/kotlin/notice/processors/MessageSyncTest.kt index 9d5fcc496f5..820863d765d 100644 --- a/mirai-core/src/commonTest/kotlin/notice/processors/MessageSyncTest.kt +++ b/mirai-core/src/commonTest/kotlin/notice/processors/MessageSyncTest.kt @@ -9,7 +9,7 @@ package net.mamoe.mirai.internal.notice.processors -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.contact.MemberPermission import net.mamoe.mirai.event.events.FriendMessageSyncEvent import net.mamoe.mirai.event.events.GroupMessageSyncEvent diff --git a/mirai-core/src/commonTest/kotlin/notice/processors/MessageTest.kt b/mirai-core/src/commonTest/kotlin/notice/processors/MessageTest.kt index 857cc577b9d..a2aa2d1b461 100644 --- a/mirai-core/src/commonTest/kotlin/notice/processors/MessageTest.kt +++ b/mirai-core/src/commonTest/kotlin/notice/processors/MessageTest.kt @@ -11,7 +11,7 @@ package net.mamoe.mirai.internal.notice.processors -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.contact.MemberPermission import net.mamoe.mirai.event.events.FriendMessageEvent import net.mamoe.mirai.event.events.GroupMessageEvent diff --git a/mirai-core/src/commonTest/kotlin/notice/processors/MuteTest.kt b/mirai-core/src/commonTest/kotlin/notice/processors/MuteTest.kt index 618cf545200..b8d480f5372 100644 --- a/mirai-core/src/commonTest/kotlin/notice/processors/MuteTest.kt +++ b/mirai-core/src/commonTest/kotlin/notice/processors/MuteTest.kt @@ -11,7 +11,7 @@ package net.mamoe.mirai.internal.notice.processors -import net.mamoe.kjbb.JvmBlockingBridge +import me.him188.kotlin.jvm.blocking.bridge.JvmBlockingBridge import net.mamoe.mirai.contact.MemberPermission import net.mamoe.mirai.event.events.BotMuteEvent import net.mamoe.mirai.event.events.BotUnmuteEvent diff --git a/mirai-core/src/commonTest/kotlin/test/utils.kt b/mirai-core/src/commonTest/kotlin/test/utils.kt index bbfc604eb2c..1e9f3b66204 100644 --- a/mirai-core/src/commonTest/kotlin/test/utils.kt +++ b/mirai-core/src/commonTest/kotlin/test/utils.kt @@ -16,13 +16,14 @@ import kotlinx.coroutines.withTimeout import kotlin.coroutines.CoroutineContext import kotlin.coroutines.EmptyCoroutineContext import kotlin.time.Duration +import kotlin.time.Duration.Companion.seconds fun runBlockingUnit( context: CoroutineContext = EmptyCoroutineContext, block: suspend CoroutineScope.() -> Unit ) { return runBlocking(context) { - withTimeout(Duration.seconds(60)) { // always checks for infinite runs. + withTimeout(60.seconds) { // always checks for infinite runs. block() } } diff --git a/settings.gradle.kts b/settings.gradle.kts index ccc1caf5838..99a2761cb70 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -12,7 +12,6 @@ pluginManagement { if (System.getProperty("use.maven.local") == "true") { mavenLocal() } -// mavenLocal() gradlePluginPortal() mavenCentral() google()