4 Commits

2 changed files with 22 additions and 7 deletions

View File

@ -52,7 +52,6 @@ internal object HttpService: HttpTransmitServlet() {
GlobalEventTransmitter.onNoticeEvent { event -> GlobalEventTransmitter.onNoticeEvent { event ->
pushTo(event) pushTo(event)
} }
}) })
submitFlowJob(GlobalScope.launch { submitFlowJob(GlobalScope.launch {
GlobalEventTransmitter.onRequestEvent { GlobalEventTransmitter.onRequestEvent {

View File

@ -1,9 +1,15 @@
@file:OptIn(DelicateCoroutinesApi::class)
package moe.fuqiuluo.shamrock.remote.service.api package moe.fuqiuluo.shamrock.remote.service.api
import com.tencent.qqnt.kernel.nativeinterface.MsgElement import com.tencent.qqnt.kernel.nativeinterface.MsgElement
import com.tencent.qqnt.kernel.nativeinterface.MsgRecord 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.FlowCollector
import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.launch
import moe.fuqiuluo.qqinterface.servlet.BaseSvc import moe.fuqiuluo.qqinterface.servlet.BaseSvc
import moe.fuqiuluo.qqinterface.servlet.CardSvc import moe.fuqiuluo.qqinterface.servlet.CardSvc
import moe.fuqiuluo.qqinterface.servlet.GroupSvc import moe.fuqiuluo.qqinterface.servlet.GroupSvc
@ -48,7 +54,7 @@ internal object GlobalEventTransmitter: BaseSvc() {
private suspend fun transMessageEvent(record: MsgRecord, message: MessageEvent) = messageEventFlow.emit(record to message) private suspend fun transMessageEvent(record: MsgRecord, message: MessageEvent) = messageEventFlow.emit(record to message)
/** /**
* 消息 手淫器 * 消息
*/ */
object MessageTransmitter { object MessageTransmitter {
/** /**
@ -556,19 +562,29 @@ internal object GlobalEventTransmitter: BaseSvc() {
@ShamrockDsl @ShamrockDsl
suspend inline fun onMessageEvent(collector: FlowCollector<Pair<MsgRecord, MessageEvent>>) { suspend inline fun onMessageEvent(collector: FlowCollector<Pair<MsgRecord, MessageEvent>>) {
messageEventFlow.collect(collector) messageEventFlow.collect {
GlobalScope.launch {
collector.emit(it)
}
}
} }
@ShamrockDsl @ShamrockDsl
suspend inline fun onNoticeEvent(collector: FlowCollector<NoticeEvent>) { suspend inline fun onNoticeEvent(collector: FlowCollector<NoticeEvent>) {
noticeEventFlow noticeEventFlow.collect {
.collect(collector) GlobalScope.launch {
collector.emit(it)
}
}
} }
@ShamrockDsl @ShamrockDsl
suspend inline fun onRequestEvent(collector: FlowCollector<RequestEvent>) { suspend inline fun onRequestEvent(collector: FlowCollector<RequestEvent>) {
requestEventFlow requestEventFlow.collect {
.collect(collector) GlobalScope.launch {
collector.emit(it)
}
}
} }
} }