mirror of
https://github.com/Mezeporta/Erupe.git
synced 2025-12-14 07:55:33 +01:00
clean up various save handlers
This commit is contained in:
@@ -246,17 +246,13 @@ func handleMsgMhfLoadDecoMyset(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
var data []byte
|
var data []byte
|
||||||
err := s.server.db.QueryRow("SELECT decomyset FROM characters WHERE id = $1", s.charID).Scan(&data)
|
err := s.server.db.QueryRow("SELECT decomyset FROM characters WHERE id = $1", s.charID).Scan(&data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.logger.Fatal("Failed to get preset decorations savedata from db", zap.Error(err))
|
s.logger.Error("Failed to load decomyset", zap.Error(err))
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(data) > 0 {
|
if len(data) > 0 {
|
||||||
doAckBufSucceed(s, pkt.AckHandle, data)
|
doAckBufSucceed(s, pkt.AckHandle, data)
|
||||||
//doAckBufSucceed(s, pkt.AckHandle, data)
|
|
||||||
} else {
|
} else {
|
||||||
// set first byte to 1 to avoid pop up every time without save
|
doAckBufSucceed(s, pkt.AckHandle, []byte{0x01, 0x00})
|
||||||
body := make([]byte, 0x226)
|
|
||||||
body[0] = 1
|
|
||||||
doAckBufSucceed(s, pkt.AckHandle, body)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -267,7 +263,7 @@ func handleMsgMhfSaveDecoMyset(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
bf := byteframe.NewByteFrameFromBytes(pkt.RawDataPayload[1:]) // skip first unk byte
|
bf := byteframe.NewByteFrameFromBytes(pkt.RawDataPayload[1:]) // skip first unk byte
|
||||||
err := s.server.db.QueryRow("SELECT decomyset FROM characters WHERE id = $1", s.charID).Scan(&loadData)
|
err := s.server.db.QueryRow("SELECT decomyset FROM characters WHERE id = $1", s.charID).Scan(&loadData)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.logger.Fatal("Failed to get preset decorations savedata from db", zap.Error(err))
|
s.logger.Error("Failed to load decomyset", zap.Error(err))
|
||||||
} else {
|
} else {
|
||||||
numSets := bf.ReadUint8() // sets being written
|
numSets := bf.ReadUint8() // sets being written
|
||||||
// empty save
|
// empty save
|
||||||
@@ -313,7 +309,7 @@ func handleMsgMhfSaveDecoMyset(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
dumpSaveData(s, loadData, "decomyset")
|
dumpSaveData(s, loadData, "decomyset")
|
||||||
_, err := s.server.db.Exec("UPDATE characters SET decomyset=$1 WHERE id=$2", loadData, s.charID)
|
_, err := s.server.db.Exec("UPDATE characters SET decomyset=$1 WHERE id=$2", loadData, s.charID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.logger.Fatal("Failed to update decomyset savedata in db", zap.Error(err))
|
s.logger.Error("Failed to save decomyset", zap.Error(err))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
|
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ func handleMsgMhfLoadPartner(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
if len(data) > 0 {
|
if len(data) > 0 {
|
||||||
doAckBufSucceed(s, pkt.AckHandle, data)
|
doAckBufSucceed(s, pkt.AckHandle, data)
|
||||||
} else {
|
} else {
|
||||||
s.logger.Warn("Failed to load partner data", zap.Error(err))
|
s.logger.Error("Failed to load partner", zap.Error(err))
|
||||||
doAckBufSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00})
|
doAckBufSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00})
|
||||||
}
|
}
|
||||||
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
|
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
|
||||||
@@ -32,7 +32,7 @@ func handleMsgMhfSavePartner(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
dumpSaveData(s, pkt.RawDataPayload, "partner")
|
dumpSaveData(s, pkt.RawDataPayload, "partner")
|
||||||
_, err := s.server.db.Exec("UPDATE characters SET partner=$1 WHERE id=$2", pkt.RawDataPayload, s.charID)
|
_, err := s.server.db.Exec("UPDATE characters SET partner=$1 WHERE id=$2", pkt.RawDataPayload, s.charID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.logger.Warn("Failed to save partner data", zap.Error(err))
|
s.logger.Error("Failed to save partner", zap.Error(err))
|
||||||
}
|
}
|
||||||
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
|
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
|
||||||
}
|
}
|
||||||
@@ -50,10 +50,8 @@ func handleMsgMhfLoadHunterNavi(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
if len(data) > 0 {
|
if len(data) > 0 {
|
||||||
doAckBufSucceed(s, pkt.AckHandle, data)
|
doAckBufSucceed(s, pkt.AckHandle, data)
|
||||||
} else {
|
} else {
|
||||||
s.logger.Warn("Failed to load navi data", zap.Error(err))
|
s.logger.Error("Failed to load hunternavi", zap.Error(err))
|
||||||
// set first byte to 1 to avoid pop up every time without save
|
|
||||||
body := make([]byte, 0x226)
|
body := make([]byte, 0x226)
|
||||||
body[0] = 1
|
|
||||||
doAckBufSucceed(s, pkt.AckHandle, body)
|
doAckBufSucceed(s, pkt.AckHandle, body)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -65,14 +63,13 @@ func handleMsgMhfSaveHunterNavi(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
// Load existing save
|
// Load existing save
|
||||||
err := s.server.db.QueryRow("SELECT hunternavi FROM characters WHERE id = $1", s.charID).Scan(&data)
|
err := s.server.db.QueryRow("SELECT hunternavi FROM characters WHERE id = $1", s.charID).Scan(&data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.logger.Warn("Failed to save navi data", zap.Error(err))
|
s.logger.Error("Failed to load hunternavi", zap.Error(err))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if we actually had any hunternavi data, using a blank buffer if not.
|
// Check if we actually had any hunternavi data, using a blank buffer if not.
|
||||||
// This is requried as the client will try to send a diff after character creation without a prior MsgMhfSaveHunterNavi packet.
|
// This is requried as the client will try to send a diff after character creation without a prior MsgMhfSaveHunterNavi packet.
|
||||||
if len(data) == 0 {
|
if len(data) == 0 {
|
||||||
data = make([]byte, 0x226)
|
data = make([]byte, 0x226)
|
||||||
data[0] = 1 // set first byte to 1 to avoid pop up every time without save
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Perform diff and compress it to write back to db
|
// Perform diff and compress it to write back to db
|
||||||
@@ -80,15 +77,15 @@ func handleMsgMhfSaveHunterNavi(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
saveOutput := deltacomp.ApplyDataDiff(pkt.RawDataPayload, data)
|
saveOutput := deltacomp.ApplyDataDiff(pkt.RawDataPayload, data)
|
||||||
_, err = s.server.db.Exec("UPDATE characters SET hunternavi=$1 WHERE id=$2", saveOutput, s.charID)
|
_, err = s.server.db.Exec("UPDATE characters SET hunternavi=$1 WHERE id=$2", saveOutput, s.charID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.logger.Warn("Failed to save navi data", zap.Error(err))
|
s.logger.Error("Failed to save hunternavi", zap.Error(err))
|
||||||
}
|
}
|
||||||
s.logger.Info("Wrote recompressed hunternavi back to DB.")
|
s.logger.Info("Wrote recompressed hunternavi back to DB")
|
||||||
} else {
|
} else {
|
||||||
dumpSaveData(s, pkt.RawDataPayload, "hunternavi")
|
dumpSaveData(s, pkt.RawDataPayload, "hunternavi")
|
||||||
// simply update database, no extra processing
|
// simply update database, no extra processing
|
||||||
_, err := s.server.db.Exec("UPDATE characters SET hunternavi=$1 WHERE id=$2", pkt.RawDataPayload, s.charID)
|
_, err := s.server.db.Exec("UPDATE characters SET hunternavi=$1 WHERE id=$2", pkt.RawDataPayload, s.charID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.logger.Warn("Failed to save navi data", zap.Error(err))
|
s.logger.Error("Failed to save hunternavi", zap.Error(err))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
|
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
|
||||||
|
|||||||
@@ -12,28 +12,28 @@ func handleMsgMhfLoadPlateData(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
var data []byte
|
var data []byte
|
||||||
err := s.server.db.QueryRow("SELECT platedata FROM characters WHERE id = $1", s.charID).Scan(&data)
|
err := s.server.db.QueryRow("SELECT platedata FROM characters WHERE id = $1", s.charID).Scan(&data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.logger.Error("Failed to get plate data savedata from db", zap.Error(err))
|
s.logger.Error("Failed to load platedata", zap.Error(err))
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(data) > 0 {
|
if len(data) > 0 {
|
||||||
doAckBufSucceed(s, pkt.AckHandle, data)
|
doAckBufSucceed(s, pkt.AckHandle, data)
|
||||||
} else {
|
} else {
|
||||||
doAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4))
|
doAckBufSucceed(s, pkt.AckHandle, []byte{})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func handleMsgMhfSavePlateData(s *Session, p mhfpacket.MHFPacket) {
|
func handleMsgMhfSavePlateData(s *Session, p mhfpacket.MHFPacket) {
|
||||||
pkt := p.(*mhfpacket.MsgMhfSavePlateData)
|
pkt := p.(*mhfpacket.MsgMhfSavePlateData)
|
||||||
|
|
||||||
dumpSaveData(s, pkt.RawDataPayload, "platedata")
|
|
||||||
|
|
||||||
if pkt.IsDataDiff {
|
if pkt.IsDataDiff {
|
||||||
var data []byte
|
var data []byte
|
||||||
|
|
||||||
// Load existing save
|
// Load existing save
|
||||||
err := s.server.db.QueryRow("SELECT platedata FROM characters WHERE id = $1", s.charID).Scan(&data)
|
err := s.server.db.QueryRow("SELECT platedata FROM characters WHERE id = $1", s.charID).Scan(&data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.logger.Fatal("Failed to get platedata savedata from db", zap.Error(err))
|
s.logger.Error("Failed to load platedata", zap.Error(err))
|
||||||
|
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(data) > 0 {
|
if len(data) > 0 {
|
||||||
@@ -41,7 +41,9 @@ func handleMsgMhfSavePlateData(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
s.logger.Info("Decompressing...")
|
s.logger.Info("Decompressing...")
|
||||||
data, err = nullcomp.Decompress(data)
|
data, err = nullcomp.Decompress(data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.logger.Fatal("Failed to decompress savedata from db", zap.Error(err))
|
s.logger.Error("Failed to decompress platedata", zap.Error(err))
|
||||||
|
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
|
||||||
|
return
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// create empty save if absent
|
// create empty save if absent
|
||||||
@@ -52,20 +54,25 @@ func handleMsgMhfSavePlateData(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
s.logger.Info("Diffing...")
|
s.logger.Info("Diffing...")
|
||||||
saveOutput, err := nullcomp.Compress(deltacomp.ApplyDataDiff(pkt.RawDataPayload, data))
|
saveOutput, err := nullcomp.Compress(deltacomp.ApplyDataDiff(pkt.RawDataPayload, data))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.logger.Fatal("Failed to diff and compress platedata savedata", zap.Error(err))
|
s.logger.Error("Failed to diff and compress platedata", zap.Error(err))
|
||||||
|
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err = s.server.db.Exec("UPDATE characters SET platedata=$1 WHERE id=$2", saveOutput, s.charID)
|
_, err = s.server.db.Exec("UPDATE characters SET platedata=$1 WHERE id=$2", saveOutput, s.charID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.logger.Fatal("Failed to update platedata savedata in db", zap.Error(err))
|
s.logger.Error("Failed to save platedata", zap.Error(err))
|
||||||
|
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
s.logger.Info("Wrote recompressed platedata back to DB.")
|
s.logger.Info("Wrote recompressed platedata back to DB")
|
||||||
} else {
|
} else {
|
||||||
|
dumpSaveData(s, pkt.RawDataPayload, "platedata")
|
||||||
// simply update database, no extra processing
|
// simply update database, no extra processing
|
||||||
_, err := s.server.db.Exec("UPDATE characters SET platedata=$1 WHERE id=$2", pkt.RawDataPayload, s.charID)
|
_, err := s.server.db.Exec("UPDATE characters SET platedata=$1 WHERE id=$2", pkt.RawDataPayload, s.charID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.logger.Fatal("Failed to update platedata savedata in db", zap.Error(err))
|
s.logger.Error("Failed to save platedata", zap.Error(err))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -77,28 +84,28 @@ func handleMsgMhfLoadPlateBox(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
var data []byte
|
var data []byte
|
||||||
err := s.server.db.QueryRow("SELECT platebox FROM characters WHERE id = $1", s.charID).Scan(&data)
|
err := s.server.db.QueryRow("SELECT platebox FROM characters WHERE id = $1", s.charID).Scan(&data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.logger.Error("Failed to get sigil box savedata from db", zap.Error(err))
|
s.logger.Error("Failed to load platebox", zap.Error(err))
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(data) > 0 {
|
if len(data) > 0 {
|
||||||
doAckBufSucceed(s, pkt.AckHandle, data)
|
doAckBufSucceed(s, pkt.AckHandle, data)
|
||||||
} else {
|
} else {
|
||||||
doAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4))
|
doAckBufSucceed(s, pkt.AckHandle, []byte{})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func handleMsgMhfSavePlateBox(s *Session, p mhfpacket.MHFPacket) {
|
func handleMsgMhfSavePlateBox(s *Session, p mhfpacket.MHFPacket) {
|
||||||
pkt := p.(*mhfpacket.MsgMhfSavePlateBox)
|
pkt := p.(*mhfpacket.MsgMhfSavePlateBox)
|
||||||
|
|
||||||
dumpSaveData(s, pkt.RawDataPayload, "platebox")
|
|
||||||
|
|
||||||
if pkt.IsDataDiff {
|
if pkt.IsDataDiff {
|
||||||
var data []byte
|
var data []byte
|
||||||
|
|
||||||
// Load existing save
|
// Load existing save
|
||||||
err := s.server.db.QueryRow("SELECT platebox FROM characters WHERE id = $1", s.charID).Scan(&data)
|
err := s.server.db.QueryRow("SELECT platebox FROM characters WHERE id = $1", s.charID).Scan(&data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.logger.Fatal("Failed to get sigil box savedata from db", zap.Error(err))
|
s.logger.Error("Failed to load platebox", zap.Error(err))
|
||||||
|
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// Decompress
|
// Decompress
|
||||||
@@ -107,7 +114,9 @@ func handleMsgMhfSavePlateBox(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
s.logger.Info("Decompressing...")
|
s.logger.Info("Decompressing...")
|
||||||
data, err = nullcomp.Decompress(data)
|
data, err = nullcomp.Decompress(data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.logger.Fatal("Failed to decompress savedata from db", zap.Error(err))
|
s.logger.Error("Failed to decompress platebox", zap.Error(err))
|
||||||
|
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
|
||||||
|
return
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// create empty save if absent
|
// create empty save if absent
|
||||||
@@ -118,20 +127,25 @@ func handleMsgMhfSavePlateBox(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
s.logger.Info("Diffing...")
|
s.logger.Info("Diffing...")
|
||||||
saveOutput, err := nullcomp.Compress(deltacomp.ApplyDataDiff(pkt.RawDataPayload, data))
|
saveOutput, err := nullcomp.Compress(deltacomp.ApplyDataDiff(pkt.RawDataPayload, data))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.logger.Fatal("Failed to diff and compress savedata", zap.Error(err))
|
s.logger.Error("Failed to diff and compress platebox", zap.Error(err))
|
||||||
|
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err = s.server.db.Exec("UPDATE characters SET platebox=$1 WHERE id=$2", saveOutput, s.charID)
|
_, err = s.server.db.Exec("UPDATE characters SET platebox=$1 WHERE id=$2", saveOutput, s.charID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.logger.Fatal("Failed to update platebox savedata in db", zap.Error(err))
|
s.logger.Error("Failed to save platebox", zap.Error(err))
|
||||||
|
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
s.logger.Info("Wrote recompressed platebox back to DB.")
|
s.logger.Info("Wrote recompressed platebox back to DB")
|
||||||
} else {
|
} else {
|
||||||
|
dumpSaveData(s, pkt.RawDataPayload, "platebox")
|
||||||
// simply update database, no extra processing
|
// simply update database, no extra processing
|
||||||
_, err := s.server.db.Exec("UPDATE characters SET platebox=$1 WHERE id=$2", pkt.RawDataPayload, s.charID)
|
_, err := s.server.db.Exec("UPDATE characters SET platebox=$1 WHERE id=$2", pkt.RawDataPayload, s.charID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.logger.Fatal("Failed to update platedata savedata in db", zap.Error(err))
|
s.logger.Error("Failed to save platebox", zap.Error(err))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
|
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
|
||||||
@@ -142,7 +156,7 @@ func handleMsgMhfLoadPlateMyset(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
var data []byte
|
var data []byte
|
||||||
err := s.server.db.QueryRow("SELECT platemyset FROM characters WHERE id = $1", s.charID).Scan(&data)
|
err := s.server.db.QueryRow("SELECT platemyset FROM characters WHERE id = $1", s.charID).Scan(&data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.logger.Fatal("Failed to get presets sigil savedata from db", zap.Error(err))
|
s.logger.Error("Failed to load platemyset", zap.Error(err))
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(data) > 0 {
|
if len(data) > 0 {
|
||||||
@@ -159,7 +173,7 @@ func handleMsgMhfSavePlateMyset(s *Session, p mhfpacket.MHFPacket) {
|
|||||||
dumpSaveData(s, pkt.RawDataPayload, "platemyset")
|
dumpSaveData(s, pkt.RawDataPayload, "platemyset")
|
||||||
_, err := s.server.db.Exec("UPDATE characters SET platemyset=$1 WHERE id=$2", pkt.RawDataPayload, s.charID)
|
_, err := s.server.db.Exec("UPDATE characters SET platemyset=$1 WHERE id=$2", pkt.RawDataPayload, s.charID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.logger.Fatal("Failed to update platemyset savedata in db", zap.Error(err))
|
s.logger.Error("Failed to save platemyset", zap.Error(err))
|
||||||
}
|
}
|
||||||
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
|
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user