Shamrock: fix GlobalEventTransmitter x2

This commit is contained in:
白池 2024-02-11 14:28:07 +08:00
parent 65f54360f8
commit 27b4c26da7

View File

@ -1,10 +1,15 @@
@file:OptIn(DelicateCoroutinesApi::class)
package moe.fuqiuluo.shamrock.remote.service.api
import com.tencent.qqnt.kernel.nativeinterface.MsgElement
import com.tencent.qqnt.kernel.nativeinterface.MsgRecord
import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.channels.BufferOverflow
import kotlinx.coroutines.flow.FlowCollector
import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.launch
import moe.fuqiuluo.qqinterface.servlet.BaseSvc
import moe.fuqiuluo.qqinterface.servlet.CardSvc
import moe.fuqiuluo.qqinterface.servlet.GroupSvc
@ -557,20 +562,29 @@ internal object GlobalEventTransmitter: BaseSvc() {
@ShamrockDsl
suspend inline fun onMessageEvent(collector: FlowCollector<Pair<MsgRecord, MessageEvent>>) {
messageEventFlow
.collect(collector)
messageEventFlow.collect {
GlobalScope.launch {
collector.emit(it)
}
}
}
@ShamrockDsl
suspend inline fun onNoticeEvent(collector: FlowCollector<NoticeEvent>) {
noticeEventFlow
.collect(collector)
noticeEventFlow.collect {
GlobalScope.launch {
collector.emit(it)
}
}
}
@ShamrockDsl
suspend inline fun onRequestEvent(collector: FlowCollector<RequestEvent>) {
requestEventFlow
.collect(collector)
requestEventFlow.collect {
GlobalScope.launch {
collector.emit(it)
}
}
}
}