dkforest

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

commit 98625380675235006f88b68b73d8b7b3c6c6aec4
parent 2025f2329cc1398382cfbd0faf60fd629a3c0d57
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Fri, 15 Dec 2023 23:04:07 -0500

cleanup

Diffstat:
Mpkg/web/handlers/poker/poker.go | 62+++++++++++++++++++++++++++++++++-----------------------------
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