commit 98625380675235006f88b68b73d8b7b3c6c6aec4
parent 2025f2329cc1398382cfbd0faf60fd629a3c0d57
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Fri, 15 Dec 2023 23:04:07 -0500
cleanup
Diffstat:
1 file changed, 33 insertions(+), 29 deletions(-)
diff --git a/pkg/web/handlers/poker/poker.go b/pkg/web/handlers/poker/poker.go
@@ -907,35 +907,7 @@ END:
winners := g.Ongoing.computeWinners()
mainPot := g.Ongoing.getMainPot()
playersGain, rake := processPot(winners, mainPot, g.PokerTableMinBet, collectRake)
- nbPlayersGain := len(playersGain)
-
- tx := db.Begin()
- var winnersStr, winnerHand string
- if nbPlayersGain >= 1 {
- winnerHand = utils.Ternary(nbPlayersGain == 1, playersGain[0].HandStr, "Split pot")
-
- if !g.PokerTableIsTest {
- _ = tx.IncrPokerCasinoRake(rake)
- }
- newLogEvent(g, roomLogsTopic, fmt.Sprintf("Rake %d (%.2f%%)", rake, (float64(rake)/float64(mainPot))*100))
-
- for _, el := range playersGain {
- newLogEvent(g, roomLogsTopic, fmt.Sprintf("Winner #%d: %s %s -> %d", el.Group, el.Player.Username, el.HandStr, el.Gain))
- _ = tx.PokerTableAccountGain(el.Player.UserID, g.PokerTableID, el.Gain)
- winnersStr += el.Player.Username.String() + " "
- el.Player.Cash += el.Gain
- }
- for _, op := range g.Ongoing.Players {
- _ = tx.PokerTableAccountResetAmountBet(op.UserID, g.PokerTableID)
- }
-
- } else if nbPlayersGain == 0 {
- // No winners, refund bets
- for _, op := range g.Ongoing.Players {
- _ = tx.PokerTableAccountRefundBet(op.UserID, g.PokerTableID)
- }
- }
- tx.Commit()
+ winnersStr, winnerHand := applyGains(db, g, playersGain, mainPot, rake, roomID)
g.Ongoing.setMainPot(0)
@@ -966,6 +938,38 @@ END:
g.IsGameStarted.Store(false)
}
+func applyGains(db *database.DkfDB, g *PokerGame, playersGain []PlayerGain, mainPot, rake database.PokerChip, roomID RoomID) (winnersStr, winnerHand string) {
+ nbPlayersGain := len(playersGain)
+ roomLogsTopic := roomID.LogsTopic()
+ tx := db.Begin()
+ if nbPlayersGain >= 1 {
+ winnerHand = utils.Ternary(nbPlayersGain == 1, playersGain[0].HandStr, "Split pot")
+
+ if !g.PokerTableIsTest {
+ _ = tx.IncrPokerCasinoRake(rake)
+ }
+ newLogEvent(g, roomLogsTopic, fmt.Sprintf("Rake %d (%.2f%%)", rake, (float64(rake)/float64(mainPot))*100))
+
+ for _, el := range playersGain {
+ newLogEvent(g, roomLogsTopic, fmt.Sprintf("Winner #%d: %s %s -> %d", el.Group, el.Player.Username, el.HandStr, el.Gain))
+ _ = tx.PokerTableAccountGain(el.Player.UserID, g.PokerTableID, el.Gain)
+ winnersStr += el.Player.Username.String() + " "
+ el.Player.Cash += el.Gain
+ }
+ for _, op := range g.Ongoing.Players {
+ _ = tx.PokerTableAccountResetAmountBet(op.UserID, g.PokerTableID)
+ }
+
+ } else if nbPlayersGain == 0 {
+ // No winners, refund bets
+ for _, op := range g.Ongoing.Players {
+ _ = tx.PokerTableAccountRefundBet(op.UserID, g.PokerTableID)
+ }
+ }
+ tx.Commit()
+ return
+}
+
type PlayerGain struct {
Player *PokerPlayer
Gain database.PokerChip