Compare commits

..

No commits in common. "9efd1b751ad113532356955a799e06e81e37f2b0" and "50d93a737f3600ac2a5b29cac5b7784b0500909f" have entirely different histories.

View File

@ -21,8 +21,6 @@ import (
"bytes" "bytes"
"encoding/gob" "encoding/gob"
"errors" "errors"
"fmt"
"time"
"github.com/pagefaultgames/rogueserver/defs" "github.com/pagefaultgames/rogueserver/defs"
) )
@ -72,27 +70,9 @@ func ReadSystemSaveData(uuid []byte) (defs.SystemSaveData, error) {
} }
func StoreSystemSaveData(uuid []byte, data defs.SystemSaveData) error { func StoreSystemSaveData(uuid []byte, data defs.SystemSaveData) error {
currentTime := time.Now()
futureTime := currentTime.Add(time.Hour * 24).UnixMilli()
pastTime := currentTime.Add(-time.Hour * 24).UnixMilli()
systemData, err := ReadSystemSaveData(uuid) systemData, err := ReadSystemSaveData(uuid)
if err == nil { // system save exists if err == nil && systemData.Timestamp > data.Timestamp {
// Check if the new data timestamp is in the past against the system save but only if the system save is not past 24 hours from now return errors.New("attempted to save an older system save")
if systemData.Timestamp > data.Timestamp && systemData.Timestamp < int(futureTime) {
// Error if the new data timestamp is older than the current system save timestamp
return fmt.Errorf("attempted to save an older system save from %d when the current system save is from %d", data.Timestamp, systemData.Timestamp)
}
}
// Check if the data.Timestamp is too far in the future
if data.Timestamp > int(futureTime) {
return fmt.Errorf("attempted to save a system save in the future from %d", data.Timestamp)
}
// Check if the data.Timestamp is too far in the past
if data.Timestamp < int(pastTime) {
return fmt.Errorf("attempted to save a system save in the past from %d", data.Timestamp)
} }
var buf bytes.Buffer var buf bytes.Buffer