fix build

This commit is contained in:
Him188 2021-04-17 19:20:00 +08:00
parent 9ac0a8715c
commit 03e12eb287
5 changed files with 22 additions and 8 deletions

View File

@ -559,7 +559,12 @@ internal open class MiraiImpl : IMirai, LowLevelApiAccessor {
} }
} }
// bot.network.logger.error(rep) // bot.network.logger.error(rep)
return bot.json.decodeFromString(GroupAnnouncementList.serializer(), rep) return json.decodeFromString(GroupAnnouncementList.serializer(), rep)
}
private val json = Json {
ignoreUnknownKeys = true
isLenient = true
} }
@LowLevelApi @LowLevelApi

View File

@ -81,7 +81,7 @@ internal class QQAndroidBot constructor(
// TODO: 2021/4/14 bdhSyncer.loadFromCache() when login // TODO: 2021/4/14 bdhSyncer.loadFromCache() when login
private val components: ConcurrentComponentStorage by lazy { internal val components: ConcurrentComponentStorage by lazy {
ConcurrentComponentStorage().apply { ConcurrentComponentStorage().apply {
set( set(
SsoProcessor, SsoProcessor,

View File

@ -21,7 +21,9 @@ import kotlinx.io.core.buildPacket
import kotlinx.io.core.discardExact import kotlinx.io.core.discardExact
import kotlinx.io.core.writeFully import kotlinx.io.core.writeFully
import net.mamoe.mirai.internal.QQAndroidBot import net.mamoe.mirai.internal.QQAndroidBot
import net.mamoe.mirai.internal.asQQAndroidBot
import net.mamoe.mirai.internal.network.QQAndroidClient import net.mamoe.mirai.internal.network.QQAndroidClient
import net.mamoe.mirai.internal.network.handler.components.BdhSessionSyncer
import net.mamoe.mirai.internal.network.handler.context.BdhSession import net.mamoe.mirai.internal.network.handler.context.BdhSession
import net.mamoe.mirai.internal.network.handler.logger import net.mamoe.mirai.internal.network.handler.logger
import net.mamoe.mirai.internal.network.protocol.data.proto.CSDataHighwayHead import net.mamoe.mirai.internal.network.protocol.data.proto.CSDataHighwayHead
@ -71,7 +73,7 @@ internal object Highway {
localeId: Int = 2052, localeId: Int = 2052,
): BdhUploadResponse { ): BdhUploadResponse {
val bdhSession = kotlin.runCatching { val bdhSession = kotlin.runCatching {
val deferred = bot.bdhSyncer.bdhSession val deferred = bot.asQQAndroidBot().components[BdhSessionSyncer].bdhSession
// no need to care about timeout. proceed by bot init // no need to care about timeout. proceed by bot init
@OptIn(ExperimentalCoroutinesApi::class) @OptIn(ExperimentalCoroutinesApi::class)
if (noBdhAwait) deferred.getCompleted() else deferred.await() if (noBdhAwait) deferred.getCompleted() else deferred.await()

View File

@ -19,7 +19,9 @@ import net.mamoe.mirai.event.events.BotOfflineEvent
import net.mamoe.mirai.internal.QQAndroidBot import net.mamoe.mirai.internal.QQAndroidBot
import net.mamoe.mirai.internal.message.contextualBugReportException import net.mamoe.mirai.internal.message.contextualBugReportException
import net.mamoe.mirai.internal.network.Packet import net.mamoe.mirai.internal.network.Packet
import net.mamoe.mirai.internal.network.handler.components.BdhSessionSyncer
import net.mamoe.mirai.internal.network.handler.components.ServerAddress import net.mamoe.mirai.internal.network.handler.components.ServerAddress
import net.mamoe.mirai.internal.network.handler.components.ServerList
import net.mamoe.mirai.internal.network.handler.context.BdhSession import net.mamoe.mirai.internal.network.handler.context.BdhSession
import net.mamoe.mirai.internal.network.handler.logger import net.mamoe.mirai.internal.network.handler.logger
import net.mamoe.mirai.internal.network.networkType import net.mamoe.mirai.internal.network.networkType
@ -87,6 +89,8 @@ internal class ConfigPushSvc {
} }
override suspend fun QQAndroidBot.handle(packet: PushReqResponse, sequenceId: Int): OutgoingPacket? { override suspend fun QQAndroidBot.handle(packet: PushReqResponse, sequenceId: Int): OutgoingPacket? {
val bdhSyncer = bot.components[BdhSessionSyncer]
fun handleConfigPush(packet: PushReqResponse.ConfigPush) { fun handleConfigPush(packet: PushReqResponse.ConfigPush) {
val pushReq = packet.struct val pushReq = packet.struct
@ -94,9 +98,10 @@ internal class ConfigPushSvc {
val fileStoragePushFSSvcList = pushReq.jcebuf.loadAs(FileStoragePushFSSvcList.serializer()) val fileStoragePushFSSvcList = pushReq.jcebuf.loadAs(FileStoragePushFSSvcList.serializer())
bot.client.fileStoragePushFSSvcList = fileStoragePushFSSvcList bot.client.fileStoragePushFSSvcList = fileStoragePushFSSvcList
val bigDataChannel = fileStoragePushFSSvcList.bigDataChannel val bigDataChannel = fileStoragePushFSSvcList.bigDataChannel
if (bigDataChannel?.vBigdataPbBuf == null) { if (bigDataChannel?.vBigdataPbBuf == null) {
bot.bdhSyncer.bdhSession.completeExceptionally(IllegalStateException("BdhSession not received.")) bdhSyncer.bdhSession.completeExceptionally(IllegalStateException("BdhSession not received."))
return return
} }
@ -149,10 +154,11 @@ internal class ConfigPushSvc {
bot.network.logger.info { "Server list: ${pushServerList.joinToString()}." } bot.network.logger.info { "Server list: ${pushServerList.joinToString()}." }
if (pushServerList.isNotEmpty()) { if (pushServerList.isNotEmpty()) {
bot.serverListNew.setPreferred(pushServerList.shuffled().map { ServerAddress(it.host, it.port) }) bot.components[ServerList].setPreferred(
pushServerList.shuffled().map { ServerAddress(it.host, it.port) })
} }
bot.bdhSyncer.saveToCache() bdhSyncer.saveToCache()
bot.bdhSyncer.saveServerListToCache() bdhSyncer.saveServerListToCache()
if (serverListPush.reconnectNeeded == 1) { if (serverListPush.reconnectNeeded == 1) {
bot.logger.info { "Server request to change server." } bot.logger.info { "Server request to change server." }
bot.launch { bot.launch {

View File

@ -28,6 +28,7 @@ import net.mamoe.mirai.internal.contact.appId
import net.mamoe.mirai.internal.createOtherClient import net.mamoe.mirai.internal.createOtherClient
import net.mamoe.mirai.internal.message.contextualBugReportException import net.mamoe.mirai.internal.message.contextualBugReportException
import net.mamoe.mirai.internal.network.* import net.mamoe.mirai.internal.network.*
import net.mamoe.mirai.internal.network.handler.components.ContactCacheService
import net.mamoe.mirai.internal.network.protocol.data.jce.* import net.mamoe.mirai.internal.network.protocol.data.jce.*
import net.mamoe.mirai.internal.network.protocol.data.proto.Oidb0x769 import net.mamoe.mirai.internal.network.protocol.data.proto.Oidb0x769
import net.mamoe.mirai.internal.network.protocol.data.proto.StatSvcGetOnline import net.mamoe.mirai.internal.network.protocol.data.proto.StatSvcGetOnline
@ -136,7 +137,7 @@ internal class StatSvc {
client: QQAndroidClient, client: QQAndroidClient,
regPushReason: RegPushReason = RegPushReason.appRegister regPushReason: RegPushReason = RegPushReason.appRegister
) = impl(client, 1 or 2 or 4, client.onlineStatus, regPushReason) { ) = impl(client, 1 or 2 or 4, client.onlineStatus, regPushReason) {
client.bot.friendListCache?.let { friendListCache: FriendListCache -> client.bot.components[ContactCacheService].friendListCache?.let { friendListCache: FriendListCache ->
iLargeSeq = friendListCache.friendListSeq iLargeSeq = friendListCache.friendListSeq
// timeStamp = friendListCache.timeStamp // timeStamp = friendListCache.timeStamp
} }