diff --git a/gradle.properties b/gradle.properties index 7b2a54474..f455bbc88 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,7 +7,7 @@ kotlin.parallel.tasks.in.project=true # kotlin kotlinVersion=1.3.61 # kotlin libraries -serializationVersion=0.13.0 +serializationVersion=0.14.0 coroutinesVersion=1.3.2 atomicFuVersion=0.14.1 kotlinXIoVersion=0.1.16 diff --git a/mirai-core-qqandroid/build.gradle.kts b/mirai-core-qqandroid/build.gradle.kts index 8ae9a0733..d57412496 100644 --- a/mirai-core-qqandroid/build.gradle.kts +++ b/mirai-core-qqandroid/build.gradle.kts @@ -64,7 +64,6 @@ kotlin { api(project(":mirai-core")) api(kotlin("stdlib", kotlinVersion)) - api(kotlin("serialization", kotlinVersion)) api("org.jetbrains.kotlinx:atomicfu:$atomicFuVersion") api(kotlinx("io", kotlinXIoVersion)) @@ -74,6 +73,7 @@ kotlin { } commonMain { dependencies { + api(kotlinx("serialization-runtime-common", serializationVersion)) } } commonTest { @@ -103,6 +103,7 @@ kotlin { val jvmMain by getting { dependencies { runtimeOnly(files("build/classes/kotlin/jvm/main")) // classpath is not properly set by IDE + api(kotlinx("serialization-runtime", serializationVersion)) } } diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/io/JceInput.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/io/JceInput.kt similarity index 99% rename from mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/io/JceInput.kt rename to mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/io/JceInput.kt index 2692c6d38..2910b341d 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/io/JceInput.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/io/JceInput.kt @@ -1,4 +1,4 @@ -package net.mamoe.mirai.qqandroid.network.io +package net.mamoe.mirai.qqandroid.io import kotlinx.io.charsets.Charset import kotlinx.io.core.* @@ -33,7 +33,8 @@ fun ByteReadPacket.readJceStruct(factory: JceStruct.Factory, } } -fun ByteArray.asJceInput(charset: Charset = CharsetUTF8): JceInput = JceInput(this.toIoBuffer(), charset) +fun ByteArray.asJceInput(charset: Charset = CharsetUTF8): JceInput = + JceInput(this.toIoBuffer(), charset) fun ByteReadPacket.readJceRequestBufferMapVersion2ToJceStruct(factory: JceStruct.Factory, charset: Charset = CharsetUTF8): J { this.use { @@ -70,7 +71,8 @@ fun ByteReadPacket.readJceRequestBufferMapVersion3(charset: Charset = CharsetUTF } } -fun ByteReadPacket.asJceInput(charset: Charset = CharsetUTF8): JceInput = JceInput(this.readIoBuffer(), charset) +fun ByteReadPacket.asJceInput(charset: Charset = CharsetUTF8): JceInput = + JceInput(this.readIoBuffer(), charset) inline fun IoBuffer.useIoBuffer(block: IoBuffer.() -> R): R { return try { diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/io/JceOutput.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/io/JceOutput.kt similarity index 99% rename from mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/io/JceOutput.kt rename to mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/io/JceOutput.kt index 3e12d45fd..a00696fbd 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/io/JceOutput.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/io/JceOutput.kt @@ -1,4 +1,4 @@ -package net.mamoe.mirai.qqandroid.network.io +package net.mamoe.mirai.qqandroid.io import kotlinx.io.charsets.Charset import kotlinx.io.core.* diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/io/JceStruct.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/io/JceStruct.kt similarity index 79% rename from mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/io/JceStruct.kt rename to mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/io/JceStruct.kt index 451aa7605..452731941 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/io/JceStruct.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/io/JceStruct.kt @@ -1,9 +1,10 @@ -package net.mamoe.mirai.qqandroid.network.io +package net.mamoe.mirai.qqandroid.io abstract class JceStruct { abstract fun writeTo(builder: JceOutput) interface Factory { fun newInstanceFrom(input: JceInput): T + } } \ No newline at end of file diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/jce/RequestPacket.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/jce/RequestPacket.kt index 09241b37a..20cbc50fb 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/jce/RequestPacket.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/jce/RequestPacket.kt @@ -1,8 +1,8 @@ package net.mamoe.mirai.qqandroid.network.protocol.jce -import net.mamoe.mirai.qqandroid.network.io.JceInput -import net.mamoe.mirai.qqandroid.network.io.JceOutput -import net.mamoe.mirai.qqandroid.network.io.JceStruct +import net.mamoe.mirai.qqandroid.io.JceInput +import net.mamoe.mirai.qqandroid.io.JceOutput +import net.mamoe.mirai.qqandroid.io.JceStruct import net.mamoe.mirai.utils.cryptor.contentToString private val EMPTY_MAP = mapOf() diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/jce/SvcReqRegister.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/jce/SvcReqRegister.kt index 475f06068..fbf809995 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/jce/SvcReqRegister.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/jce/SvcReqRegister.kt @@ -1,8 +1,8 @@ package net.mamoe.mirai.qqandroid.network.protocol.jce -import net.mamoe.mirai.qqandroid.network.io.JceInput -import net.mamoe.mirai.qqandroid.network.io.JceOutput -import net.mamoe.mirai.qqandroid.network.io.JceStruct +import net.mamoe.mirai.qqandroid.io.JceInput +import net.mamoe.mirai.qqandroid.io.JceOutput +import net.mamoe.mirai.qqandroid.io.JceStruct class SvcReqRegister( var bIsOnline: Byte = 0, diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/jce/uni.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/jce/uni.kt index 80d671141..f29bdee1e 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/jce/uni.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/jce/uni.kt @@ -1,9 +1,9 @@ package net.mamoe.mirai.qqandroid.network.protocol.jce import kotlinx.io.core.BytePacketBuilder -import net.mamoe.mirai.qqandroid.network.io.JceOutput -import net.mamoe.mirai.qqandroid.network.io.buildJcePacket -import net.mamoe.mirai.qqandroid.network.io.writeJcePacket +import net.mamoe.mirai.qqandroid.io.JceOutput +import net.mamoe.mirai.qqandroid.io.buildJcePacket +import net.mamoe.mirai.qqandroid.io.writeJcePacket inline fun BytePacketBuilder.writeUniRequestPacket(requestPacket: RequestPacket.() -> Unit) { writeJcePacket { diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/PacketFactory.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/PacketFactory.kt index 275ab8842..33130f52b 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/PacketFactory.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/PacketFactory.kt @@ -4,7 +4,7 @@ import kotlinx.io.core.* import kotlinx.io.pool.useInstance import net.mamoe.mirai.data.Packet import net.mamoe.mirai.qqandroid.QQAndroidBot -import net.mamoe.mirai.qqandroid.network.io.JceInput +import net.mamoe.mirai.qqandroid.io.JceInput import net.mamoe.mirai.qqandroid.network.protocol.jce.RequestPacket import net.mamoe.mirai.qqandroid.network.protocol.packet.chat.receive.MessageSvc import net.mamoe.mirai.qqandroid.network.protocol.packet.chat.receive.OnlinePush diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/data/PushNotifyPack.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/data/PushNotifyPack.kt index 55d4b4b1c..0f706f0a7 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/data/PushNotifyPack.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/data/PushNotifyPack.kt @@ -1,9 +1,9 @@ package net.mamoe.mirai.qqandroid.network.protocol.packet.chat.data import net.mamoe.mirai.data.Packet -import net.mamoe.mirai.qqandroid.network.io.JceInput -import net.mamoe.mirai.qqandroid.network.io.JceOutput -import net.mamoe.mirai.qqandroid.network.io.JceStruct +import net.mamoe.mirai.qqandroid.io.JceInput +import net.mamoe.mirai.qqandroid.io.JceOutput +import net.mamoe.mirai.qqandroid.io.JceStruct import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY class RequestPushNotify( diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/receive/MessageSvc.PushNotify.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/receive/MessageSvc.PushNotify.kt index 1a060a0c3..59f8cae90 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/receive/MessageSvc.PushNotify.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/receive/MessageSvc.PushNotify.kt @@ -2,7 +2,7 @@ package net.mamoe.mirai.qqandroid.network.protocol.packet.chat.receive import kotlinx.io.core.ByteReadPacket import net.mamoe.mirai.qqandroid.QQAndroidBot -import net.mamoe.mirai.qqandroid.network.io.readJceRequestBufferMapVersion2ToJceStruct +import net.mamoe.mirai.qqandroid.io.readJceRequestBufferMapVersion2ToJceStruct import net.mamoe.mirai.qqandroid.network.protocol.packet.PacketFactory import net.mamoe.mirai.qqandroid.network.protocol.packet.chat.data.RequestPushNotify import net.mamoe.mirai.utils.cryptor.contentToString diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/login/Register.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/login/Register.kt index 1c244a4fb..41342f294 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/login/Register.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/login/Register.kt @@ -5,8 +5,8 @@ import kotlinx.serialization.protobuf.ProtoBuf import net.mamoe.mirai.data.Packet import net.mamoe.mirai.qqandroid.QQAndroidBot import net.mamoe.mirai.qqandroid.network.QQAndroidClient -import net.mamoe.mirai.qqandroid.network.io.jceMap -import net.mamoe.mirai.qqandroid.network.io.jceStruct +import net.mamoe.mirai.qqandroid.io.jceMap +import net.mamoe.mirai.qqandroid.io.jceStruct import net.mamoe.mirai.qqandroid.network.protocol.jce.SvcReqRegister import net.mamoe.mirai.qqandroid.network.protocol.jce.writeUniRequestPacket import net.mamoe.mirai.qqandroid.network.protocol.packet.OutgoingPacket