commit c86661a1b491b478025e37c437cd613099f144f9
parent 79b25896d299250fe3f87f1f9fd6611862f04d8b
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Wed, 6 Dec 2023 07:17:32 -0500
save chips
Diffstat:
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>`)
}