Merge remote-tracking branch 'origin/master'

This commit is contained in:
jiahua.liu 2020-01-27 21:01:12 +08:00
commit 63ab80a560
12 changed files with 27 additions and 23 deletions

View File

@ -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

View File

@ -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))
}
}

View File

@ -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 <J : JceStruct> ByteReadPacket.readJceStruct(factory: JceStruct.Factory<J>,
}
}
fun ByteArray.asJceInput(charset: Charset = CharsetUTF8): JceInput = JceInput(this.toIoBuffer(), charset)
fun ByteArray.asJceInput(charset: Charset = CharsetUTF8): JceInput =
JceInput(this.toIoBuffer(), charset)
fun <J : JceStruct> ByteReadPacket.readJceRequestBufferMapVersion2ToJceStruct(factory: JceStruct.Factory<J>, 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 <R> IoBuffer.useIoBuffer(block: IoBuffer.() -> R): R {
return try {

View File

@ -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.*

View File

@ -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<out T : JceStruct> {
fun newInstanceFrom(input: JceInput): T
}
}

View File

@ -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<String, String>()

View File

@ -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,

View File

@ -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 {

View File

@ -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

View File

@ -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(

View File

@ -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

View File

@ -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