ソースを参照

Remove __broadcastJava

Him188 4 年 前
コミット
6103628801

+ 1 - 1
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
 }

+ 1 - 1
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
 }

+ 2 - 18
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` 都能正常添加到监听器列表, 但所有的广播都会直接返回.

+ 2 - 1
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
     }

+ 2 - 1
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.")
         }