mirror of
https://github.com/Mezeporta/Erupe.git
synced 2026-03-22 07:32:32 +01:00
fix(channelserver): return error from Save() to prevent misleading success logs
CharacterSaveData.Save() silently returned on failure (nil decompressed data, compression error, DB error) while the caller unconditionally logged "Saved character data successfully". This made diagnosing save failures difficult (ref #163). Save() now returns an error, and all six call sites check it. The success log in saveAllCharacterData only fires when the save actually persisted.
This commit is contained in:
@@ -194,7 +194,14 @@ func saveAllCharacterData(s *Session, rpToAdd int) error {
|
||||
}
|
||||
|
||||
// Save to database (main savedata + user_binary)
|
||||
characterSaveData.Save(s)
|
||||
if err := characterSaveData.Save(s); err != nil {
|
||||
s.logger.Error("Failed to save character data",
|
||||
zap.Error(err),
|
||||
zap.Uint32("charID", s.charID),
|
||||
zap.String("name", s.Name),
|
||||
)
|
||||
return err
|
||||
}
|
||||
|
||||
// Save auxiliary data types
|
||||
// Note: Plate data saves immediately when client sends save packets,
|
||||
|
||||
Reference in New Issue
Block a user