From 6103628801237823af0926d0f9d9250162ea0f0b Mon Sep 17 00:00:00 2001 From: Him188 <Him188@mamoe.net> Date: Sun, 12 Dec 2021 19:12:06 +0000 Subject: [PATCH] Remove __broadcastJava --- ...binary-compatibility-validator-android.api | 2 +- .../api/binary-compatibility-validator.api | 2 +- .../src/commonMain/kotlin/event/Event.kt | 20 ++----------------- .../kotlin/event/JvmMethodEventsTestJava.kt | 3 ++- .../event/SimpleListenerHostTestJava.kt | 3 ++- 5 files changed, 8 insertions(+), 22 deletions(-) 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 aa545bc3d..8db04558a 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/api/binary-compatibility-validator.api b/binary-compatibility-validator/api/binary-compatibility-validator.api index 86af8c668..798abe748 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/mirai-core-api/src/commonMain/kotlin/event/Event.kt b/mirai-core-api/src/commonMain/kotlin/event/Event.kt index 82c24762d..863dbe9f5 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 : Event> 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 : Event> 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/jvmTest/kotlin/event/JvmMethodEventsTestJava.kt b/mirai-core-api/src/jvmTest/kotlin/event/JvmMethodEventsTestJava.kt index 07f490a61..e719246eb 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 9afa5ff3e..ba1e38ff0 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.") }