dkforest

A forum and chat platform (onion)
git clone https://git.dasho.dev/n0tr1v/dkforest.git
Log | Files | Refs | LICENSE

commit 7560b94776a1b4ea2407cbcd8d898dffceaa18be
parent bf0c9dd11810a57dabbc7d3e45f4dde03f0cf5aa
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Wed,  6 Dec 2023 06:24:52 -0500

fix stuff, add chips to db

Diffstat:
Acmd/dkf/migrations/146.sql | 4++++
Mpkg/database/tableUsers.go | 1+
Mpkg/web/handlers/poker/poker.go | 18+++++++++++++++---
3 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/cmd/dkf/migrations/146.sql b/cmd/dkf/migrations/146.sql @@ -0,0 +1,4 @@ +-- +migrate Up +ALTER TABLE users ADD COLUMN chips_test INTEGER NOT NULL DEFAULT 0; + +-- +migrate Down diff --git a/pkg/database/tableUsers.go b/pkg/database/tableUsers.go @@ -117,6 +117,7 @@ type User struct { CaptchaRequired bool Theme int64 GeneralMessagesCount int64 + ChipsTest int AFK bool UseStream bool SyntaxHighlightCode string diff --git a/pkg/web/handlers/poker/poker.go b/pkg/web/handlers/poker/poker.go @@ -171,7 +171,7 @@ func (g *PokerGame) SitPlayer(authUser *database.User, pos int) error { if g.Players[pos] != nil { return errors.New("seat already taken") } - g.Players[pos] = &PokerStandingPlayer{Username: authUser.Username.String(), Cash: 1000} + g.Players[pos] = &PokerStandingPlayer{Username: authUser.Username.String(), Cash: authUser.ChipsTest} return nil } @@ -187,7 +187,7 @@ func NewOngoing(g *PokerGame) *Ongoing { players := make([]*PokerPlayer, NbPlayers) for idx, p := range g.Players { var player *PokerPlayer - if p != nil { + if p != nil && p.Cash > 0 { player = &PokerPlayer{Username: p.Username, Cash: p.Cash} } players[idx] = player @@ -231,6 +231,9 @@ OUTER: if player.Folded { continue } + if player.Cash == 0 { + continue + } evt := PokerWaitTurnEvent{Idx: i} PokerPubSub.Pub(roomTopic, evt) @@ -617,7 +620,7 @@ func (g *PokerGame) Deal(roomID string, authUser *database.User) { PokerPubSub.Pub(roomUserTopic, ErrorMsgEvent{Message: "game already ongoing"}) return } - if g.CountSeated() < 2 { + if g.CountEligibleSeated() < 2 { PokerPubSub.Pub(roomUserTopic, ErrorMsgEvent{Message: "need at least 2 players"}) return } @@ -633,6 +636,15 @@ func (g *PokerGame) Deal(roomID string, authUser *database.User) { go dealerThread(g, roomID) } +func (g *PokerGame) CountEligibleSeated() (count int) { + for _, p := range g.Players { + if p != nil && p.Cash > 0 { + count++ + } + } + return +} + func (g *PokerGame) CountSeated() (count int) { for _, p := range g.Players { if p != nil {