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:
Houmgaor
2026-02-27 11:21:37 +01:00
parent 178a008e25
commit 74798fc8b3
7 changed files with 32 additions and 9 deletions

View File

@@ -376,7 +376,9 @@ func handleMsgMhfPostTenrouirai(s *Session, p mhfpacket.MHFPacket) {
sd, err := GetCharacterSaveData(s, s.charID)
if err == nil && sd != nil {
sd.RP -= pkt.DonatedRP
sd.Save(s)
if err := sd.Save(s); err != nil {
s.logger.Error("Failed to save RP after tower donation", zap.Error(err))
}
result, err := s.server.towerService.DonateGuildTowerRP(pkt.GuildID, pkt.DonatedRP)
if err != nil {
s.logger.Error("Failed to process tower RP donation", zap.Error(err))