From e184e9da91e7745793c34a6637e6bdee6b64111b Mon Sep 17 00:00:00 2001 From: maru Date: Sun, 28 Apr 2024 20:59:53 -0400 Subject: [PATCH] Ban if vouchers over a certain threshold --- api/savedata/update.go | 7 +++++++ db/account.go | 9 +++++++++ 2 files changed, 16 insertions(+) diff --git a/api/savedata/update.go b/api/savedata/update.go index b19b8c6..1ecdb01 100644 --- a/api/savedata/update.go +++ b/api/savedata/update.go @@ -39,6 +39,13 @@ func Update(uuid []byte, slot int, save any) error { return fmt.Errorf("client version out of date") } + if save.VoucherCounts["0"] > 300 || + save.VoucherCounts["1"] > 150 || + save.VoucherCounts["2"] > 100 || + save.VoucherCounts["3"] > 10 { + db.UpdateAccountBanned(uuid, true) + } + err = db.UpdateAccountStats(uuid, save.GameStats, save.VoucherCounts) if err != nil { return fmt.Errorf("failed to update account stats: %s", err) diff --git a/db/account.go b/db/account.go index fe9f9b1..3c66d39 100644 --- a/db/account.go +++ b/db/account.go @@ -127,6 +127,15 @@ func UpdateAccountStats(uuid []byte, stats defs.GameStats, voucherCounts map[str return nil } +func UpdateAccountBanned(uuid []byte, banned bool) error { + _, err := handle.Exec("UPDATE accounts SET banned = ? WHERE uuid = ?", banned, uuid) + if err != nil { + return err + } + + return nil +} + func FetchAndClaimAccountCompensations(uuid []byte) (map[int]int, error) { var compensations = make(map[int]int)