dkforest

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

commit 1de251dfc98c66b4299ca34cb4c8b8d1edc93ef5
parent b606f058cd846eb9c90128bf8119b2c10de44d55
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Mon, 18 Dec 2023 20:50:54 -0500

Fix all-in bug

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

diff --git a/pkg/web/handlers/poker/poker.go b/pkg/web/handlers/poker/poker.go @@ -872,15 +872,15 @@ RoundIsSettled: // Calculate what is the max gain all-in players can make computeAllInMaxGain(g, newlyAllInPlayers, mainPot) - // When only one player remain alive (everyone else fold) + // Always refund the difference between the first-biggest bet and the second-biggest bet. // We refund the "uncalled bet" so that it does not go in the main pot and does not get raked. - if playerAlive == 1 { - newArray := make([]*PokerPlayer, len(ongoing.Players)) - copy(newArray, ongoing.Players) - sort.Slice(newArray, func(i, j int) bool { return newArray[i].GetBet() > newArray[j].GetBet() }) - firstPlayer := newArray[0] - secondPlayer := newArray[1] - diff := firstPlayer.GetBet() - secondPlayer.GetBet() + newArray := make([]*PokerPlayer, len(ongoing.Players)) + copy(newArray, ongoing.Players) + sort.Slice(newArray, func(i, j int) bool { return newArray[i].GetBet() > newArray[j].GetBet() }) + firstPlayer := newArray[0] + secondPlayer := newArray[1] + diff := firstPlayer.GetBet() - secondPlayer.GetBet() + if diff > 0 { firstPlayer.refundPartialBet(db, pokerTableID, diff) }