From de20a0668bf5b278a0c2aab8ad11bd96a6fc251e Mon Sep 17 00:00:00 2001 From: wish Date: Sun, 29 Jan 2023 20:59:16 +1100 Subject: [PATCH] clean up various mercenary handlers --- server/channelserver/handlers_mercenary.go | 47 +++------------------- 1 file changed, 6 insertions(+), 41 deletions(-) diff --git a/server/channelserver/handlers_mercenary.go b/server/channelserver/handlers_mercenary.go index bdeb924de..e5c7e63d3 100644 --- a/server/channelserver/handlers_mercenary.go +++ b/server/channelserver/handlers_mercenary.go @@ -13,37 +13,25 @@ import ( "path/filepath" ) -// THERE ARE [PARTENER] [MERCENARY] [OTOMO AIRU] - -/////////////////////////////////////////// -/// PARTENER // -/////////////////////////////////////////// - func handleMsgMhfLoadPartner(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfLoadPartner) - // load partner from database var data []byte err := s.server.db.QueryRow("SELECT partner FROM characters WHERE id = $1", s.charID).Scan(&data) - if err != nil { - s.logger.Fatal("Failed to get partner savedata from db", zap.Error(err)) - } if len(data) > 0 { doAckBufSucceed(s, pkt.AckHandle, data) } else { + s.logger.Warn("Failed to load partner data", zap.Error(err)) doAckBufSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}) } - // TODO(Andoryuuta): Figure out unusual double ack. One sized, one not. doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) } func handleMsgMhfSavePartner(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfSavePartner) - dumpSaveData(s, pkt.RawDataPayload, "partner") - _, err := s.server.db.Exec("UPDATE characters SET partner=$1 WHERE id=$2", pkt.RawDataPayload, s.charID) if err != nil { - s.logger.Fatal("Failed to update partner savedata in db", zap.Error(err)) + s.logger.Warn("Failed to save partner data", zap.Error(err)) } doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) } @@ -58,13 +46,10 @@ func handleMsgMhfLoadHunterNavi(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfLoadHunterNavi) var data []byte err := s.server.db.QueryRow("SELECT hunternavi FROM characters WHERE id = $1", s.charID).Scan(&data) - if err != nil { - s.logger.Fatal("Failed to get hunter navigation savedata from db", zap.Error(err)) - } - if len(data) > 0 { doAckBufSucceed(s, pkt.AckHandle, data) } else { + s.logger.Warn("Failed to load navi data", zap.Error(err)) // set first byte to 1 to avoid pop up every time without save body := make([]byte, 0x226) body[0] = 1 @@ -74,16 +59,12 @@ func handleMsgMhfLoadHunterNavi(s *Session, p mhfpacket.MHFPacket) { func handleMsgMhfSaveHunterNavi(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfSaveHunterNavi) - - dumpSaveData(s, pkt.RawDataPayload, "hunternavi") - if pkt.IsDataDiff { var data []byte - // Load existing save err := s.server.db.QueryRow("SELECT hunternavi FROM characters WHERE id = $1", s.charID).Scan(&data) if err != nil { - s.logger.Fatal("Failed to get hunternavi savedata from db", zap.Error(err)) + s.logger.Warn("Failed to save navi data", zap.Error(err)) } // Check if we actually had any hunternavi data, using a blank buffer if not. @@ -96,30 +77,22 @@ func handleMsgMhfSaveHunterNavi(s *Session, p mhfpacket.MHFPacket) { // Perform diff and compress it to write back to db s.logger.Info("Diffing...") saveOutput := deltacomp.ApplyDataDiff(pkt.RawDataPayload, data) - _, err = s.server.db.Exec("UPDATE characters SET hunternavi=$1 WHERE id=$2", saveOutput, s.charID) if err != nil { - s.logger.Fatal("Failed to update hunternavi savedata in db", zap.Error(err)) + s.logger.Warn("Failed to save navi data", zap.Error(err)) } - s.logger.Info("Wrote recompressed hunternavi back to DB.") } else { dumpSaveData(s, pkt.RawDataPayload, "hunternavi") // simply update database, no extra processing _, err := s.server.db.Exec("UPDATE characters SET hunternavi=$1 WHERE id=$2", pkt.RawDataPayload, s.charID) if err != nil { - s.logger.Fatal("Failed to update hunternavi savedata in db", zap.Error(err)) + s.logger.Warn("Failed to save navi data", zap.Error(err)) } } doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) } -/////////////////////////////////////////// - -/////////////////////////////////////////// -/// MERCENARY // -/////////////////////////////////////////// - func handleMsgMhfMercenaryHuntdata(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfMercenaryHuntdata) if pkt.Unk0 == 1 { @@ -208,12 +181,6 @@ func handleMsgMhfReadMercenaryM(s *Session, p mhfpacket.MHFPacket) { func handleMsgMhfContractMercenary(s *Session, p mhfpacket.MHFPacket) {} -/////////////////////////////////////////// - -/////////////////////////////////////////// -/// OTOMO AIRU // -/////////////////////////////////////////// - func handleMsgMhfLoadOtomoAirou(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfLoadOtomoAirou) var data []byte @@ -411,5 +378,3 @@ func GetCatDetails(bf *byteframe.ByteFrame) []CatDefinition { } return cats } - -///////////////////////////////////////////