fix continue

This commit is contained in:
Up 2024-05-08 01:02:57 +02:00
parent 9102b69194
commit cb071d9d9b
No known key found for this signature in database
GPG Key ID: 3B75CD7439FEB388
2 changed files with 20 additions and 22 deletions

View File

@ -18,11 +18,7 @@
package account package account
import ( import (
"fmt" "github.com/pagefaultgames/rogueserver/db"
"os"
"strconv"
"time"
"github.com/pagefaultgames/rogueserver/defs" "github.com/pagefaultgames/rogueserver/defs"
) )
@ -33,24 +29,16 @@ type InfoResponse struct {
// /account/info - get account info // /account/info - get account info
func Info(username string, uuid []byte) (InfoResponse, error) { func Info(username string, uuid []byte) (InfoResponse, error) {
var latestSave time.Time response := InfoResponse{Username: username, LastSessionSlot: -1}
latestSaveID := -1
for id := range defs.SessionSlotCount {
fileName := "session"
if id != 0 {
fileName += strconv.Itoa(id)
}
stat, err := os.Stat(fmt.Sprintf("userdata/%x/%s.pzs", uuid, fileName)) slot, err := db.GetLatestSessionSaveDataSlot(uuid)
if err != nil { if err != nil {
continue return response, err
} }
if stat.ModTime().After(latestSave) { if slot >= defs.SessionSlotCount {
latestSave = stat.ModTime() response.LastSessionSlot = -1
latestSaveID = id
}
} }
return InfoResponse{Username: username, LastSessionSlot: latestSaveID}, nil return response, nil
} }

View File

@ -79,6 +79,16 @@ func ReadSessionSaveData(uuid []byte, slot int) (defs.SessionSaveData, error) {
return save, err return save, err
} }
func GetLatestSessionSaveDataSlot(uuid []byte) (int, error) {
var slot int
err := handle.QueryRow("SELECT slot FROM sessionSaveData WHERE uuid = ? ORDER BY timestamp DESC, slot ASC LIMIT 1", uuid).Scan(&slot)
if err != nil {
return -1, err
}
return slot, nil
}
func StoreSessionSaveData(uuid []byte, data defs.SessionSaveData, slot int) error { func StoreSessionSaveData(uuid []byte, data defs.SessionSaveData, slot int) error {
var buf bytes.Buffer var buf bytes.Buffer