diff --git a/Erupe/server/channelserver/handlers_quest.go b/Erupe/server/channelserver/handlers_quest.go index 36afb1c5f..abca05f3f 100644 --- a/Erupe/server/channelserver/handlers_quest.go +++ b/Erupe/server/channelserver/handlers_quest.go @@ -43,14 +43,19 @@ func handleMsgSysGetFile(s *Session, p mhfpacket.MHFPacket) { func handleMsgMhfLoadFavoriteQuest(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfLoadFavoriteQuest) - // TODO(Andoryuuta): Save data from MsgMhfSaveFavoriteQuest and resend it here. - // Fist: Using a no favourites placeholder to avoid an in game error message - // being sent every time you use a counter when it fails to load - doAckBufSucceed(s, pkt.AckHandle, []byte{0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}) + var data []byte + err := s.server.db.QueryRow("SELECT quest_data FROM favourite_quest WHERE char_id = $1",s.charID).Scan(&data) + if err == nil { + doAckBufSucceed(s, pkt.AckHandle, data) + } else { + doAckBufSucceed(s, pkt.AckHandle, []byte{0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}) + } } func handleMsgMhfSaveFavoriteQuest(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfSaveFavoriteQuest) + s.server.db.Exec("INSERT INTO favourite_quest(char_id) VALUES($1)", s.charID) + s.server.db.Exec("UPDATE favourite_quest SET quest_data = $1 WHERE char_id = $2", pkt.Data, s.charID) doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) }