dkforest

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

commit b571098d022aefd4e07f9b6d324ef9531de92d4a
parent 1223243d514a6b07cafd1c7178ac953604d660e8
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Tue, 19 Dec 2023 00:07:32 -0500

cleanup

Diffstat:
Mpkg/web/handlers/poker/poker.go | 72++++++++++++++++++++++++++++++++++++++++++++++++------------------------
1 file changed, 48 insertions(+), 24 deletions(-)

diff --git a/pkg/web/handlers/poker/poker.go b/pkg/web/handlers/poker/poker.go @@ -225,6 +225,48 @@ type GameResult struct { Players []*PokerPlayer } +func (g *PokerGame) Check(userID database.UserID) { + select { + case g.PlayersEventCh <- PlayerEvent{UserID: userID, Check: true}: + default: + } +} + +func (g *PokerGame) AllIn(userID database.UserID) { + select { + case g.PlayersEventCh <- PlayerEvent{UserID: userID, AllIn: true}: + default: + } +} + +func (g *PokerGame) Bet(userID database.UserID, bet database.PokerChip) { + select { + case g.PlayersEventCh <- PlayerEvent{UserID: userID, Bet: bet}: + default: + } +} + +func (g *PokerGame) Call(userID database.UserID) { + select { + case g.PlayersEventCh <- PlayerEvent{UserID: userID, Call: true}: + default: + } +} + +func (g *PokerGame) Fold(userID database.UserID) { + select { + case g.PlayersEventCh <- PlayerEvent{UserID: userID, Fold: true}: + default: + } +} + +func (g *PokerGame) UnSit(userID database.UserID) { + select { + case g.PlayersEventCh <- PlayerEvent{UserID: userID, Unsit: true}: + default: + } +} + func (g *Ongoing) isHeadsUpGame() bool { return len(g.Players) == 2 // https://en.wikipedia.org/wiki/Heads-up_poker } @@ -450,10 +492,7 @@ func (g *PokerGame) UnSitPlayer1(gPlayers *[]*SeatedPlayer, seatedPlayer *Seated seatedPlayerUserID := seatedPlayer.UserID if ongoing != nil { if player := ongoing.getPlayer(seatedPlayerUserID); player != nil { - select { - case g.PlayersEventCh <- PlayerEvent{UserID: player.UserID, Unsit: true}: - default: - } + g.UnSit(player.UserID) player.Folded.Store(true) player.Cards.RWith(func(playerCards *[]PlayerCard) { for _, card := range *playerCards { @@ -1422,10 +1461,7 @@ func PokerCheckHandler(c echo.Context) error { return c.NoContent(http.StatusNotFound) } if c.Request().Method == http.MethodPost { - select { - case g.PlayersEventCh <- PlayerEvent{UserID: authUser.ID, Check: true}: - default: - } + g.Check(authUser.ID) } return c.HTML(http.StatusOK, hutils.HtmlCssReset+`<form method="post"><button>Check</button></form>`) } @@ -1442,19 +1478,13 @@ func PokerBetHandler(c echo.Context) error { bet = database.PokerChip(utils.DoParseUint64(c.Request().PostFormValue("betValue"))) betBtn := c.Request().PostFormValue("bet") if betBtn == "betAllIn" { - select { - case g.PlayersEventCh <- PlayerEvent{UserID: authUser.ID, AllIn: true}: - default: - } + g.AllIn(authUser.ID) } else { if strings.HasPrefix(betBtn, "bet_") { bet = database.PokerChip(utils.DoParseUint64(strings.TrimPrefix(betBtn, "bet_"))) } if bet > 0 { - select { - case g.PlayersEventCh <- PlayerEvent{UserID: authUser.ID, Bet: bet}: - default: - } + g.Bet(authUser.ID, bet) } } } @@ -1487,10 +1517,7 @@ func PokerCallHandler(c echo.Context) error { return c.NoContent(http.StatusNotFound) } if c.Request().Method == http.MethodPost { - select { - case g.PlayersEventCh <- PlayerEvent{UserID: authUser.ID, Call: true}: - default: - } + g.Call(authUser.ID) } return c.HTML(http.StatusOK, hutils.HtmlCssReset+`<form method="post"><button>Call</button></form>`) } @@ -1503,10 +1530,7 @@ func PokerFoldHandler(c echo.Context) error { return c.NoContent(http.StatusNotFound) } if c.Request().Method == http.MethodPost { - select { - case g.PlayersEventCh <- PlayerEvent{UserID: authUser.ID, Fold: true}: - default: - } + g.Fold(authUser.ID) } return c.HTML(http.StatusOK, hutils.HtmlCssReset+`<form method="post"><button>Fold</button></form>`) }