mirror of
https://github.com/Mezeporta/Erupe.git
synced 2026-02-05 17:47:05 +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) {
|
func handleMsgMhfSexChanger(s *Session, p mhfpacket.MHFPacket) {
|
||||||
pkt := p.(*mhfpacket.MsgMhfSexChanger)
|
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})
|
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
|
||||||
|
"github.com/Andoryuuta/byteframe"
|
||||||
"github.com/Solenataris/Erupe/common/bfutil"
|
"github.com/Solenataris/Erupe/common/bfutil"
|
||||||
"github.com/Solenataris/Erupe/network/mhfpacket"
|
"github.com/Solenataris/Erupe/network/mhfpacket"
|
||||||
"github.com/Solenataris/Erupe/server/channelserver/compression/deltacomp"
|
"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))
|
s.logger.Fatal("Failed to decompress diff", zap.Error(err))
|
||||||
}
|
}
|
||||||
// Perform diff.
|
// Perform diff.
|
||||||
characterSaveData.SetBaseSaveData(deltacomp.ApplyDataDiff(diff, characterSaveData.BaseSaveData()))
|
|
||||||
s.logger.Info("Diffing...")
|
s.logger.Info("Diffing...")
|
||||||
|
characterSaveData.SetBaseSaveData(deltacomp.ApplyDataDiff(diff, characterSaveData.BaseSaveData()))
|
||||||
} else {
|
} else {
|
||||||
// Regular blob update.
|
// Regular blob update.
|
||||||
saveData, err := nullcomp.Decompress(pkt.RawDataPayload)
|
saveData, err := nullcomp.Decompress(pkt.RawDataPayload)
|
||||||
|
|
||||||
characterSaveData.SetBaseSaveData(saveData)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.logger.Fatal("Failed to decompress savedata from packet", zap.Error(err))
|
s.logger.Fatal("Failed to decompress savedata from packet", zap.Error(err))
|
||||||
}
|
}
|
||||||
s.logger.Info("Updating save with blob")
|
s.logger.Info("Updating save with blob")
|
||||||
|
characterSaveData.SetBaseSaveData(saveData)
|
||||||
}
|
}
|
||||||
characterSaveData.IsNewCharacter = false
|
characterSaveData.IsNewCharacter = false
|
||||||
characterBaseSaveData := characterSaveData.BaseSaveData()
|
characterBaseSaveData := characterSaveData.BaseSaveData()
|
||||||
|
|||||||
Reference in New Issue
Block a user