mirror of
https://github.com/Mezeporta/Erupe.git
synced 2026-02-05 01:32:17 +01:00
rewrite character and data handlers
This commit is contained in:
@@ -128,16 +128,5 @@ func (save *CharacterSaveData) updateStructWithSaveData() {
|
||||
|
||||
func handleMsgMhfSexChanger(s *Session, p mhfpacket.MHFPacket) {
|
||||
pkt := p.(*mhfpacket.MsgMhfSexChanger)
|
||||
if pkt.Gender == 0 {
|
||||
_, err := s.server.db.Exec("UPDATE characters SET is_female=true WHERE id=$1", s.charID)
|
||||
if err != nil {
|
||||
s.logger.Fatal("Failed to update gender in db", zap.Error(err))
|
||||
}
|
||||
} else {
|
||||
_, err := s.server.db.Exec("UPDATE characters SET is_female=false WHERE id=$1", s.charID)
|
||||
if err != nil {
|
||||
s.logger.Fatal("Failed to update gender in db", zap.Error(err))
|
||||
}
|
||||
}
|
||||
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/Andoryuuta/byteframe"
|
||||
"github.com/Solenataris/Erupe/common/bfutil"
|
||||
"github.com/Solenataris/Erupe/network/mhfpacket"
|
||||
"github.com/Solenataris/Erupe/server/channelserver/compression/deltacomp"
|
||||
@@ -32,17 +33,16 @@ func handleMsgMhfSavedata(s *Session, p mhfpacket.MHFPacket) {
|
||||
s.logger.Fatal("Failed to decompress diff", zap.Error(err))
|
||||
}
|
||||
// Perform diff.
|
||||
characterSaveData.SetBaseSaveData(deltacomp.ApplyDataDiff(diff, characterSaveData.BaseSaveData()))
|
||||
s.logger.Info("Diffing...")
|
||||
characterSaveData.SetBaseSaveData(deltacomp.ApplyDataDiff(diff, characterSaveData.BaseSaveData()))
|
||||
} else {
|
||||
// Regular blob update.
|
||||
saveData, err := nullcomp.Decompress(pkt.RawDataPayload)
|
||||
|
||||
characterSaveData.SetBaseSaveData(saveData)
|
||||
if err != nil {
|
||||
s.logger.Fatal("Failed to decompress savedata from packet", zap.Error(err))
|
||||
}
|
||||
s.logger.Info("Updating save with blob")
|
||||
characterSaveData.SetBaseSaveData(saveData)
|
||||
}
|
||||
characterSaveData.IsNewCharacter = false
|
||||
characterBaseSaveData := characterSaveData.BaseSaveData()
|
||||
|
||||
Reference in New Issue
Block a user