Commit 4ac84cf1 authored by Him188's avatar Him188

Merge remote-tracking branch 'origin/master'

parents a68dec97 933eb1c2
...@@ -16,7 +16,6 @@ import net.mamoe.mirai.utils.cryptor.contentToString ...@@ -16,7 +16,6 @@ import net.mamoe.mirai.utils.cryptor.contentToString
import net.mamoe.mirai.utils.firstValue import net.mamoe.mirai.utils.firstValue
import net.mamoe.mirai.utils.io.debugPrint import net.mamoe.mirai.utils.io.debugPrint
import net.mamoe.mirai.utils.io.toReadPacket import net.mamoe.mirai.utils.io.toReadPacket
import net.mamoe.mirai.utils.io.toUHexString
class MessageSvc { class MessageSvc {
internal object PushNotify : PacketFactory<RequestPushNotify>("MessageSvc.PushNotify") { internal object PushNotify : PacketFactory<RequestPushNotify>("MessageSvc.PushNotify") {
...@@ -35,6 +34,8 @@ class MessageSvc { ...@@ -35,6 +34,8 @@ class MessageSvc {
.readRemainingAsJceStruct(RequestPushNotify.serializer()) .readRemainingAsJceStruct(RequestPushNotify.serializer())
println(requestPushNotify.contentToString()) println(requestPushNotify.contentToString())
return requestPushNotify return requestPushNotify
} }
} }
......
...@@ -24,13 +24,6 @@ class JCEInfo( ...@@ -24,13 +24,6 @@ class JCEInfo(
override fun toString(): String { override fun toString(): String {
properties = properties.sortedBy { it->it.jceID } properties = properties.sortedBy { it->it.jceID }
/**
*
@Serializable
class RequestDataVersion2(
@SerialId(0) val map: Map<String, Map<String, ByteArray>>
) : JceStruct
*/
val max = (properties.size - 1).toString().length val max = (properties.size - 1).toString().length
val builder:StringBuilder = StringBuilder("@Serializable") val builder:StringBuilder = StringBuilder("@Serializable")
builder.append("\n").append("internal class ").append(className).append("(") builder.append("\n").append("internal class ").append(className).append("(")
...@@ -45,10 +38,11 @@ class JCEInfo( ...@@ -45,10 +38,11 @@ class JCEInfo(
} }
class Property( class Property(
val name:String, var name:String,
var type:String, var type:String,
var defaultValue:String? = null var defaultValue:String? = null
){ ){
var isRequired: Boolean = true
var jceID:Int = -1 var jceID:Int = -1
//convert type/default value to kotlin format //convert type/default value to kotlin format
init { init {
...@@ -59,6 +53,28 @@ class Property( ...@@ -59,6 +53,28 @@ class Property(
.replace("int", "Int") .replace("int", "Int")
.replace("short", "Short") .replace("short", "Short")
.replace("long", "Long") .replace("long", "Long")
if(name.length >1 && name.get(1).isUpperCase()){
if(name.get(0) == 'l' || name.get(0) =='c' || name.get(0) == 'b'){
name = name.substring(1)
}
}
if(name.startsWith("str") || name.startsWith("bytes")){
name = name.replace("str","").replace("bytes","")
}
if(name.contains("_")){
val x = name.split("_")
name = x.get(0);
var z = 1;
repeat(x.size-1){
name+= "" + x.get(z).get(0).toUpperCase() + x.get(z).substring(1).toLowerCase()
++z;
}
}
name = "" + name.get(0).toLowerCase() + "" + name.substring(1)
} }
//@SerialId(1) val iVersion: Short = 3, //@SerialId(1) val iVersion: Short = 3,
override fun toString(): String { override fun toString(): String {
...@@ -70,10 +86,19 @@ class Property( ...@@ -70,10 +86,19 @@ class Property(
fun toStringWithSpacing(maxIDLength:Int): String { fun toStringWithSpacing(maxIDLength:Int): String {
val space = " ".repeat(maxIDLength - (jceID.toString().length)) val space = " ".repeat(maxIDLength - (jceID.toString().length))
if (defaultValue != null) { var base = " @SerialId(" + jceID + ") " + space + "val " + name + ":" + type + ""
return " @SerialId(" + jceID + ") " + space + "val " + name + ":" + type + " = " + defaultValue if(!isRequired){
if(defaultValue == null) {
base += "? = null"
}else{
base += "? = $defaultValue"
}
}else{
if(defaultValue != null) {
base+=" = " + defaultValue
}
} }
return " @SerialId(" + jceID + ") "+ space +"val " + name + ":" + type+"? = null" return base
} }
} }
...@@ -128,10 +153,14 @@ fun toJCEInfo(source:String):JCEInfo{ ...@@ -128,10 +153,14 @@ fun toJCEInfo(source:String):JCEInfo{
if(!allProperties.containsKey(key)){ if(!allProperties.containsKey(key)){
println(key + " is found in readFrom but not in properties") println(key + " is found in readFrom but not in properties")
} }
val id = it val src = it
.substringBetween(".read(",");") .replace(".readString(",".read(\" \",")
.split(",")[1].trim().toInt() .substringBetween("(",");")
allProperties.get(key)?.jceID = id; .split(",")
with(allProperties.get(key)!!){
this.jceID = src[1].trim().toInt()
this.isRequired = src[2].trim().toBoolean()
}
} }
} }
} }
......
...@@ -6,7 +6,7 @@ import java.io.File ...@@ -6,7 +6,7 @@ import java.io.File
fun main() { fun main() {
println( println(
File("""E:\Projects\QQAndroidFF\app\src\main\java\msf\onlinepush""") File("""/Users/jiahua.liu/Desktop/QQAndroid-F/app/src/main/java/tencent/im/s2c/msgtype0x210/submsgtype0x1a/""")
.generateUnarrangedClasses().toMutableList().arrangeClasses().joinToString("\n\n") .generateUnarrangedClasses().toMutableList().arrangeClasses().joinToString("\n\n")
) )
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment