rogueserver/db/savedata.go

27 lines
743 B
Go
Raw Normal View History

2024-03-16 18:51:13 -07:00
package db
2024-03-17 08:34:11 -07:00
func TryAddSeedCompletion(uuid []byte, seed string, mode int, score int) (bool, error) {
2024-03-16 18:51:13 -07:00
if len(seed) < 24 {
for range 24 - len(seed) {
seed += "0"
}
}
2024-03-17 08:34:11 -07:00
newCompletion := true
2024-03-16 18:51:13 -07:00
var count int
err := handle.QueryRow("SELECT COUNT(*) FROM seedCompletions WHERE uuid = ? AND seed = ?", uuid, seed).Scan(&count)
if err != nil {
return false, err
} else if count > 0 {
2024-03-17 08:34:11 -07:00
newCompletion = false
2024-03-16 18:51:13 -07:00
}
2024-03-17 08:34:11 -07:00
_, err = handle.Exec("INSERT INTO seedCompletions (uuid, seed, mode, score, timestamp) VALUES (?, ?, ?, ?, UTC_TIMESTAMP()) ON DUPLICATE KEY UPDATE score = ?, timestamp = IF(score < ?, UTC_TIMESTAMP(), timestamp)", uuid, seed, mode, score, score, score)
2024-03-16 18:51:13 -07:00
if err != nil {
return false, err
}
2024-03-17 08:34:11 -07:00
return newCompletion, nil
2024-03-16 18:51:13 -07:00
}