fix continue

pull/3/head
Up 7 months ago
parent 9102b69194
commit cb071d9d9b
No known key found for this signature in database
GPG Key ID: 3B75CD7439FEB388

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

@ -79,6 +79,16 @@ func ReadSessionSaveData(uuid []byte, slot int) (defs.SessionSaveData, error) {
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 {
var buf bytes.Buffer

Loading…
Cancel
Save