fix nil savedata error proper

This commit is contained in:
wish
2023-02-12 01:35:48 +11:00
parent e9d57b477f
commit 174f58c014
3 changed files with 4 additions and 2 deletions

View File

@@ -253,7 +253,7 @@ func logoutPlayer(s *Session) {
removeSessionFromStage(s) removeSessionFromStage(s)
saveData, err := GetCharacterSaveData(s, s.charID) saveData, err := GetCharacterSaveData(s, s.charID)
if err != nil || saveData == nil { if err != nil {
s.logger.Error("Failed to get savedata") s.logger.Error("Failed to get savedata")
return return
} }

View File

@@ -2,6 +2,7 @@ package channelserver
import ( import (
"encoding/binary" "encoding/binary"
"errors"
"erupe-ce/common/bfutil" "erupe-ce/common/bfutil"
"erupe-ce/common/stringsupport" "erupe-ce/common/stringsupport"
@@ -58,6 +59,7 @@ func GetCharacterSaveData(s *Session, charID uint32) (*CharacterSaveData, error)
} }
defer result.Close() defer result.Close()
if !result.Next() { if !result.Next() {
err = errors.New("no savedata found")
s.logger.Error("No savedata found", zap.Uint32("charID", charID)) s.logger.Error("No savedata found", zap.Uint32("charID", charID))
return nil, err return nil, err
} }

View File

@@ -785,7 +785,7 @@ func handleDonateRP(s *Session, amount uint16, guild *Guild, isEvent bool) []byt
bf := byteframe.NewByteFrame() bf := byteframe.NewByteFrame()
bf.WriteUint32(0) bf.WriteUint32(0)
saveData, err := GetCharacterSaveData(s, s.charID) saveData, err := GetCharacterSaveData(s, s.charID)
if err != nil || saveData == nil { if err != nil {
return bf.Data() return bf.Data()
} }
saveData.RP -= amount saveData.RP -= amount