fix(handlers): trying to fix issues with incomplete saves.

This commit is contained in:
Houmgaor
2025-10-31 13:10:17 +01:00
parent 2d3edcfd10
commit 18592c5ded
3 changed files with 33 additions and 0 deletions

View File

@@ -14,6 +14,7 @@ import (
"erupe-ce/network/mhfpacket"
"erupe-ce/server/channelserver/compression/deltacomp"
"erupe-ce/server/channelserver/compression/nullcomp"
"go.uber.org/zap"
)
@@ -62,6 +63,14 @@ func handleMsgMhfSavedata(s *Session, p mhfpacket.MHFPacket) {
s.Name = characterSaveData.Name
}
// Force name to match session to prevent corruption detection false positives
// This handles SJIS/UTF-8 encoding differences and ensures saves succeed across all game versions
if characterSaveData.Name != s.Name && !characterSaveData.IsNewCharacter {
s.logger.Info("Correcting name mismatch in savedata", zap.String("savedata_name", characterSaveData.Name), zap.String("session_name", s.Name))
characterSaveData.Name = s.Name
characterSaveData.updateSaveDataWithStruct()
}
if characterSaveData.Name == s.Name || _config.ErupeConfig.RealClientMode <= _config.S10 {
characterSaveData.Save(s)
s.logger.Info("Wrote recompressed savedata back to DB.")