mirror of
https://github.com/mamoe/mirai.git
synced 2025-01-21 10:14:42 +08:00
change robot structure
This commit is contained in:
parent
6991a73af5
commit
c2eee671ca
@ -1,5 +1,6 @@
|
|||||||
package net.mamoe.mirai.network.packet
|
package net.mamoe.mirai.network.packet
|
||||||
|
|
||||||
|
import net.mamoe.mirai.util.toUHexString
|
||||||
import net.mamoe.mirai.utils.MiraiLogger
|
import net.mamoe.mirai.utils.MiraiLogger
|
||||||
import java.io.ByteArrayOutputStream
|
import java.io.ByteArrayOutputStream
|
||||||
import java.io.DataInputStream
|
import java.io.DataInputStream
|
||||||
@ -32,7 +33,7 @@ class ServerGroupUploadFileEventPacket(input: DataInputStream, packetId: ByteArr
|
|||||||
lateinit var message: String
|
lateinit var message: String
|
||||||
|
|
||||||
override fun decode() {
|
override fun decode() {
|
||||||
message = String(this.input.goto(65).readNBytes(this.input.goto(60).readShort().toInt()))
|
message = String(this.input.goto(64).readNBytes(this.input.goto(60).readShort().toInt()))
|
||||||
}//todo test
|
}//todo test
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -46,12 +47,7 @@ class ServerGroupMessageEventPacket(input: DataInputStream, packetId: ByteArray,
|
|||||||
NORMAL,
|
NORMAL,
|
||||||
XML,
|
XML,
|
||||||
AT,
|
AT,
|
||||||
FACE,//qq自带表情 [face107.gif]
|
IMAGE,
|
||||||
|
|
||||||
PLAIN_TEXT, //纯文本
|
|
||||||
IMAGE, //自定义图片 {F50C5235-F958-6DF7-4EFA-397736E125A4}.gif
|
|
||||||
|
|
||||||
ANONYMOUS,//匿名用户发出的消息
|
|
||||||
|
|
||||||
OTHER,
|
OTHER,
|
||||||
}
|
}
|
||||||
@ -60,26 +56,17 @@ class ServerGroupMessageEventPacket(input: DataInputStream, packetId: ByteArray,
|
|||||||
group = this.input.goto(51).readInt()
|
group = this.input.goto(51).readInt()
|
||||||
qq = this.input.goto(56).readInt()
|
qq = this.input.goto(56).readInt()
|
||||||
val fontLength = this.input.goto(108).readShort()
|
val fontLength = this.input.goto(108).readShort()
|
||||||
//println(this.input.goto(110 + fontLength).readNBytes(2).toUHexString())//always 00 00
|
println(this.input.goto(110 + fontLength).readNBytes(2).toUHexString())
|
||||||
|
|
||||||
messageType = when (val id = this.input.goto(110 + fontLength + 2).readByte().toInt()) {
|
messageType = when (val id = this.input.goto(110 + fontLength + 2).readByte().toInt()) {
|
||||||
19 -> MessageType.NORMAL
|
19 -> MessageType.NORMAL
|
||||||
14 -> MessageType.XML
|
14 -> MessageType.XML
|
||||||
|
2 -> MessageType.IMAGE
|
||||||
6 -> MessageType.AT
|
6 -> MessageType.AT
|
||||||
|
|
||||||
|
else -> MessageType.OTHER
|
||||||
1 -> MessageType.PLAIN_TEXT
|
|
||||||
2 -> MessageType.FACE
|
|
||||||
3 -> MessageType.IMAGE
|
|
||||||
25 -> MessageType.ANONYMOUS
|
|
||||||
|
|
||||||
else -> {
|
|
||||||
println("id=$id")
|
|
||||||
MessageType.OTHER
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
when (messageType) {
|
when (messageType) {
|
||||||
MessageType.NORMAL -> {
|
MessageType.NORMAL -> {
|
||||||
val gzippedMessage = this.input.goto(110 + fontLength + 16).readNBytes(this.input.goto(110 + fontLength + 3).readShort().toInt() - 11)
|
val gzippedMessage = this.input.goto(110 + fontLength + 16).readNBytes(this.input.goto(110 + fontLength + 3).readShort().toInt() - 11)
|
||||||
@ -97,7 +84,7 @@ class ServerGroupMessageEventPacket(input: DataInputStream, packetId: ByteArray,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MessageType.FACE -> {
|
MessageType.IMAGE -> {
|
||||||
val faceId = this.input.goto(110 + fontLength + 8).readByte()
|
val faceId = this.input.goto(110 + fontLength + 8).readByte()
|
||||||
message = "[face${faceId}.gif]"
|
message = "[face${faceId}.gif]"
|
||||||
}
|
}
|
||||||
@ -155,7 +142,7 @@ class ServerFriendMessageEventPacket(input: DataInputStream, packetId: ByteArray
|
|||||||
val fontLength = input.readShort(93+msgLength)
|
val fontLength = input.readShort(93+msgLength)
|
||||||
val offset = msgLength+fontLength
|
val offset = msgLength+fontLength
|
||||||
message = if(input.readByte(97+offset).toUHexString() == "02"){
|
message = if(input.readByte(97+offset).toUHexString() == "02"){
|
||||||
"[face" + input.goto(103+offset).readVarString(1) + ".gif]"
|
"[face" + input.goto(103+offset).readByte(1).toInt().toString() + ".gif]"
|
||||||
//.gif
|
//.gif
|
||||||
}else {
|
}else {
|
||||||
val offset2 = input.readShort(101 + offset)
|
val offset2 = input.readShort(101 + offset)
|
||||||
|
Loading…
Reference in New Issue
Block a user