clean up various save handlers

This commit is contained in:
wish
2023-01-29 22:32:52 +11:00
parent 7ed3702cc0
commit 29d62634fa
4 changed files with 19 additions and 43 deletions

View File

@@ -1834,8 +1834,7 @@ func handleMsgMhfGetEnhancedMinidata(s *Session, p mhfpacket.MHFPacket) {
var data []byte var data []byte
err := s.server.db.QueryRow("SELECT minidata FROM characters WHERE id = $1", pkt.CharID).Scan(&data) err := s.server.db.QueryRow("SELECT minidata FROM characters WHERE id = $1", pkt.CharID).Scan(&data)
if err != nil { if err != nil {
data = make([]byte, 0x400) // returning empty might avoid a client softlock data = make([]byte, 1)
//s.logger.Fatal("Failed to get minidata from db", zap.Error(err))
} }
doAckBufSucceed(s, pkt.AckHandle, data) doAckBufSucceed(s, pkt.AckHandle, data)
} }

View File

@@ -248,12 +248,10 @@ func handleMsgMhfLoadDecoMyset(s *Session, p mhfpacket.MHFPacket) {
if err != nil { if err != nil {
s.logger.Error("Failed to load decomyset", zap.Error(err)) s.logger.Error("Failed to load decomyset", zap.Error(err))
} }
if len(data) == 0 {
if len(data) > 0 { data = []byte{0x01, 0x00}
doAckBufSucceed(s, pkt.AckHandle, data)
} else {
doAckBufSucceed(s, pkt.AckHandle, []byte{0x01, 0x00})
} }
doAckBufSucceed(s, pkt.AckHandle, data)
} }
func handleMsgMhfSaveDecoMyset(s *Session, p mhfpacket.MHFPacket) { func handleMsgMhfSaveDecoMyset(s *Session, p mhfpacket.MHFPacket) {

View File

@@ -18,12 +18,11 @@ func handleMsgMhfLoadPartner(s *Session, p mhfpacket.MHFPacket) {
pkt := p.(*mhfpacket.MsgMhfLoadPartner) pkt := p.(*mhfpacket.MsgMhfLoadPartner)
var data []byte var data []byte
err := s.server.db.QueryRow("SELECT partner FROM characters WHERE id = $1", s.charID).Scan(&data) err := s.server.db.QueryRow("SELECT partner FROM characters WHERE id = $1", s.charID).Scan(&data)
if len(data) > 0 { if len(data) == 0 {
doAckBufSucceed(s, pkt.AckHandle, data)
} else {
s.logger.Error("Failed to load partner", 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}) data = make([]byte, 9)
} }
doAckBufSucceed(s, pkt.AckHandle, data)
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
} }
@@ -47,13 +46,11 @@ func handleMsgMhfLoadHunterNavi(s *Session, p mhfpacket.MHFPacket) {
pkt := p.(*mhfpacket.MsgMhfLoadHunterNavi) pkt := p.(*mhfpacket.MsgMhfLoadHunterNavi)
var data []byte var data []byte
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 len(data) > 0 { if len(data) == 0 {
doAckBufSucceed(s, pkt.AckHandle, data)
} else {
s.logger.Error("Failed to load hunternavi", zap.Error(err)) s.logger.Error("Failed to load hunternavi", zap.Error(err))
body := make([]byte, 0x226) data = make([]byte, 0x226)
doAckBufSucceed(s, pkt.AckHandle, body)
} }
doAckBufSucceed(s, pkt.AckHandle, data)
} }
func handleMsgMhfSaveHunterNavi(s *Session, p mhfpacket.MHFPacket) { func handleMsgMhfSaveHunterNavi(s *Session, p mhfpacket.MHFPacket) {
@@ -227,14 +224,11 @@ func handleMsgMhfLoadOtomoAirou(s *Session, p mhfpacket.MHFPacket) {
pkt := p.(*mhfpacket.MsgMhfLoadOtomoAirou) pkt := p.(*mhfpacket.MsgMhfLoadOtomoAirou)
var data []byte var data []byte
err := s.server.db.QueryRow("SELECT otomoairou FROM characters WHERE id = $1", s.charID).Scan(&data) err := s.server.db.QueryRow("SELECT otomoairou FROM characters WHERE id = $1", s.charID).Scan(&data)
if err != nil { if len(data) == 0 {
s.logger.Fatal("Failed to get partnyaa savedata from db", zap.Error(err)) s.logger.Error("Failed to load otomoairou", zap.Error(err))
data = make([]byte, 10)
} }
if len(data) > 0 {
doAckBufSucceed(s, pkt.AckHandle, data) doAckBufSucceed(s, pkt.AckHandle, data)
} else {
doAckBufSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00})
}
} }
func handleMsgMhfSaveOtomoAirou(s *Session, p mhfpacket.MHFPacket) { func handleMsgMhfSaveOtomoAirou(s *Session, p mhfpacket.MHFPacket) {

View File

@@ -14,12 +14,7 @@ func handleMsgMhfLoadPlateData(s *Session, p mhfpacket.MHFPacket) {
if err != nil { if err != nil {
s.logger.Error("Failed to load platedata", zap.Error(err)) s.logger.Error("Failed to load platedata", zap.Error(err))
} }
if len(data) > 0 {
doAckBufSucceed(s, pkt.AckHandle, data) doAckBufSucceed(s, pkt.AckHandle, data)
} else {
doAckBufSucceed(s, pkt.AckHandle, []byte{})
}
} }
func handleMsgMhfSavePlateData(s *Session, p mhfpacket.MHFPacket) { func handleMsgMhfSavePlateData(s *Session, p mhfpacket.MHFPacket) {
@@ -86,12 +81,7 @@ func handleMsgMhfLoadPlateBox(s *Session, p mhfpacket.MHFPacket) {
if err != nil { if err != nil {
s.logger.Error("Failed to load platebox", zap.Error(err)) s.logger.Error("Failed to load platebox", zap.Error(err))
} }
if len(data) > 0 {
doAckBufSucceed(s, pkt.AckHandle, data) doAckBufSucceed(s, pkt.AckHandle, data)
} else {
doAckBufSucceed(s, pkt.AckHandle, []byte{})
}
} }
func handleMsgMhfSavePlateBox(s *Session, p mhfpacket.MHFPacket) { func handleMsgMhfSavePlateBox(s *Session, p mhfpacket.MHFPacket) {
@@ -155,16 +145,11 @@ func handleMsgMhfLoadPlateMyset(s *Session, p mhfpacket.MHFPacket) {
pkt := p.(*mhfpacket.MsgMhfLoadPlateMyset) pkt := p.(*mhfpacket.MsgMhfLoadPlateMyset)
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 len(data) == 0 {
s.logger.Error("Failed to load platemyset", zap.Error(err)) s.logger.Error("Failed to load platemyset", zap.Error(err))
data = make([]byte, 0x780)
} }
if len(data) > 0 {
doAckBufSucceed(s, pkt.AckHandle, data) doAckBufSucceed(s, pkt.AckHandle, data)
} else {
blankData := make([]byte, 0x780)
doAckBufSucceed(s, pkt.AckHandle, blankData)
}
} }
func handleMsgMhfSavePlateMyset(s *Session, p mhfpacket.MHFPacket) { func handleMsgMhfSavePlateMyset(s *Session, p mhfpacket.MHFPacket) {