dkforest

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

commit c86661a1b491b478025e37c437cd613099f144f9
parent 79b25896d299250fe3f87f1f9fd6611862f04d8b
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Wed,  6 Dec 2023 07:17:32 -0500

save chips

Diffstat:
Mpkg/web/handlers/poker/poker.go | 14++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/pkg/web/handlers/poker/poker.go b/pkg/web/handlers/poker/poker.go @@ -379,7 +379,7 @@ OUTER: return playerAlive == 1 } -func dealerThread(g *PokerGame, roomID string) { +func dealerThread(db *database.DkfDB, g *PokerGame, roomID string) { roomTopic := "room_" + roomID var winner *PokerPlayer var winnerHand string @@ -595,6 +595,11 @@ END: for idx := range g.Players { if g.Ongoing.Players[idx] != nil && g.Players[idx] != nil { g.Players[idx].Cash = g.Ongoing.Players[idx].Cash + // TODO: need to figure out how to prevent double spend + if user, err := db.GetUserByUsername(database.Username(g.Ongoing.Players[idx].Username)); err == nil { + user.ChipsTest = g.Players[idx].Cash + user.DoSave(db) + } } } @@ -612,7 +617,7 @@ func cardToPokerCard(name string) string { return r.Replace(name) } -func (g *PokerGame) Deal(roomID string, authUser *database.User) { +func (g *PokerGame) Deal(db *database.DkfDB, roomID string, authUser *database.User) { roomTopic := "room_" + roomID roomUserTopic := "room_" + roomID + "_" + authUser.Username.String() @@ -633,7 +638,7 @@ func (g *PokerGame) Deal(roomID string, authUser *database.User) { g.Ongoing = NewOngoing(g) - go dealerThread(g, roomID) + go dealerThread(db, g, roomID) } func (g *PokerGame) CountEligibleSeated() (count int) { @@ -738,12 +743,13 @@ func PokerFoldHandler(c echo.Context) error { func PokerDealHandler(c echo.Context) error { roomID := c.Param("roomID") authUser := c.Get("authUser").(*database.User) + db := c.Get("database").(*database.DkfDB) g := PokerInstance.GetGame(roomID) if g == nil { return c.NoContent(http.StatusNotFound) } if c.Request().Method == http.MethodPost { - g.Deal(roomID, authUser) + g.Deal(db, roomID, authUser) } return c.HTML(http.StatusOK, `<form method="post"><button>Deal</button></form>`) }