commit b571098d022aefd4e07f9b6d324ef9531de92d4a
parent 1223243d514a6b07cafd1c7178ac953604d660e8
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Tue, 19 Dec 2023 00:07:32 -0500
cleanup
Diffstat:
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>`)
}