commit 779e61fd93805d67b2086a831193fe9b448ef756
parent 895ae566fabd3439fc20dc19846bec4b72477a8b
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Thu, 7 Dec 2023 19:21:21 -0500
prevent multi seat
Diffstat:
1 file changed, 8 insertions(+), 0 deletions(-)
diff --git a/pkg/web/handlers/poker/poker.go b/pkg/web/handlers/poker/poker.go
@@ -282,6 +282,11 @@ func rotateIdx[T any](players []T) int {
}
func (g *PokerGame) SitPlayer(authUser *database.User, pos int) error {
+ for _, p := range g.Players {
+ if p != nil && p.Username == authUser.Username.String() {
+ return errors.New("player already seated")
+ }
+ }
if g.Players[pos] != nil {
return errors.New("seat already taken")
}
@@ -728,6 +733,9 @@ END:
for idx := range g.Players {
if g.Players[idx] != nil {
op := g.Ongoing.GetPlayer(g.Players[idx].Username)
+ if op == nil {
+ continue
+ }
g.Players[idx].Cash = op.Cash
// TODO: need to figure out how to prevent double spend
if user, err := db.GetUserByUsername(database.Username(op.Username)); err == nil {