mirror of
https://github.com/mamoe/mirai.git
synced 2025-02-07 20:49:20 +08:00
Add MessageProtocolStrategy.sendPacket
This commit is contained in:
parent
c510a49adc
commit
d5ef2aae64
@ -17,6 +17,7 @@ import net.mamoe.mirai.internal.message.protocol.MessageProtocol
|
||||
import net.mamoe.mirai.internal.message.protocol.ProcessorCollector
|
||||
import net.mamoe.mirai.internal.message.protocol.outgoing.OutgoingMessagePipelineContext
|
||||
import net.mamoe.mirai.internal.message.protocol.outgoing.OutgoingMessagePipelineContext.Companion.CONTACT
|
||||
import net.mamoe.mirai.internal.message.protocol.outgoing.OutgoingMessagePipelineContext.Companion.ORIGINAL_MESSAGE
|
||||
import net.mamoe.mirai.internal.message.protocol.outgoing.OutgoingMessagePipelineContext.Companion.PROTOCOL_STRATEGY
|
||||
import net.mamoe.mirai.internal.message.protocol.outgoing.OutgoingMessagePipelineContext.Companion.STEP
|
||||
import net.mamoe.mirai.internal.message.protocol.outgoing.OutgoingMessageSender
|
||||
@ -68,10 +69,11 @@ internal class GeneralMessageSenderProtocol : MessageProtocol(PRIORITY_GENERAL_S
|
||||
contact: Contact,
|
||||
packets: List<OutgoingPacket>
|
||||
) = packets.forEach { packet ->
|
||||
val originalMessage = attributes[OutgoingMessagePipelineContext.ORIGINAL_MESSAGE]
|
||||
val originalMessage = attributes[ORIGINAL_MESSAGE]
|
||||
val protocolStrategy = attributes[PROTOCOL_STRATEGY]
|
||||
val finalMessage = currentMessageChain
|
||||
|
||||
val resp = bot.network.sendAndExpect(packet) as MessageSvcPbSendMsg.Response
|
||||
val resp = protocolStrategy.sendPacket(bot, packet) as MessageSvcPbSendMsg.Response
|
||||
if (resp is MessageSvcPbSendMsg.Response.MessageTooLarge) {
|
||||
val next = step.nextStepOrNull()
|
||||
?: throw MessageTooLargeException(
|
||||
|
@ -14,9 +14,11 @@ import kotlinx.coroutines.withTimeoutOrNull
|
||||
import net.mamoe.mirai.event.EventPriority
|
||||
import net.mamoe.mirai.event.GlobalEventChannel
|
||||
import net.mamoe.mirai.event.nextEvent
|
||||
import net.mamoe.mirai.internal.AbstractBot
|
||||
import net.mamoe.mirai.internal.contact.*
|
||||
import net.mamoe.mirai.internal.message.source.OnlineMessageSourceToFriendImpl
|
||||
import net.mamoe.mirai.internal.message.source.OnlineMessageSourceToGroupImpl
|
||||
import net.mamoe.mirai.internal.network.Packet
|
||||
import net.mamoe.mirai.internal.network.QQAndroidClient
|
||||
import net.mamoe.mirai.internal.network.component.ComponentKey
|
||||
import net.mamoe.mirai.internal.network.components.ClockHolder.Companion.clock
|
||||
@ -27,7 +29,10 @@ import net.mamoe.mirai.internal.network.protocol.packet.chat.receive.*
|
||||
import net.mamoe.mirai.message.data.MessageChain
|
||||
import net.mamoe.mirai.message.data.OnlineMessageSource
|
||||
|
||||
internal sealed interface MessageProtocolStrategy<in C : AbstractContact> {
|
||||
internal interface MessageProtocolStrategy<in C : AbstractContact> {
|
||||
suspend fun sendPacket(bot: AbstractBot, packet: OutgoingPacket): Packet? {
|
||||
return bot.network.sendAndExpect(packet)
|
||||
}
|
||||
|
||||
suspend fun createPacketsForGeneralMessage(
|
||||
client: QQAndroidClient,
|
||||
|
Loading…
Reference in New Issue
Block a user