dkforest

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

commit b6b47fd902da8c8a346527cb6d9d62312320b447
parent 257fec85632673c18ba2c82d94efc93eb3e76b28
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Mon, 18 Dec 2023 23:16:46 -0500

cleanup

Diffstat:
Mpkg/web/handlers/handlers.go | 4++--
Mpkg/web/handlers/poker/poker.go | 50+++++++++++++++++++++++---------------------------
2 files changed, 25 insertions(+), 29 deletions(-)

diff --git a/pkg/web/handlers/handlers.go b/pkg/web/handlers/handlers.go @@ -965,7 +965,7 @@ func doJoinTable(db *database.DkfDB, pokerTableSlug string, playerBuyIn database if g := poker.PokerInstance.GetGame(poker.RoomID(pokerTableSlug)); g != nil { g.Players.Lock() defer g.Players.Unlock() - if g.IsSeated2(userID) { + if g.IsSeated(userID) { return errors.New("cannot buy-in while seated") } } @@ -1011,7 +1011,7 @@ func doCashOut(db *database.DkfDB, pokerTableSlug string, userID database.UserID if g := poker.PokerInstance.GetGame(poker.RoomID(pokerTableSlug)); g != nil { g.Players.Lock() defer g.Players.Unlock() - if g.IsSeated2(userID) { + if g.IsSeated(userID) { return errors.New("cannot cash out while seated") } } diff --git a/pkg/web/handlers/poker/poker.go b/pkg/web/handlers/poker/poker.go @@ -306,16 +306,12 @@ func sortGameResults(arr []GameResult) { sort.Slice(arr, func(i, j int) bool { return arr[i].HandScore < arr[j].HandScore }) } -func (g *Ongoing) AddEvent(evts ...PokerEvent) { +func (g *Ongoing) addEvent(evts ...PokerEvent) { g.Events.With(func(events *[]PokerEvent) { *events = append(*events, evts...) }) } -func (g *Ongoing) GetDeckStr() string { - return g.getDeckStr() -} - func (g *Ongoing) getDeckStr() string { return strings.Join(g.Deck, "") } @@ -345,7 +341,7 @@ func (g *Ongoing) countCanBetPlayers() (nbCanBet int) { return } -func (g *Ongoing) CountAlivePlayers() (playerAlive int) { +func (g *Ongoing) countAlivePlayers() (playerAlive int) { for _, p := range g.Players { if !p.Folded.Load() { playerAlive++ @@ -354,7 +350,7 @@ func (g *Ongoing) CountAlivePlayers() (playerAlive int) { return } -func (g *Ongoing) GetPlayer(userID database.UserID) *PokerPlayer { +func (g *Ongoing) getPlayer(userID database.UserID) *PokerPlayer { for _, p := range g.Players { if p.UserID == userID { return p @@ -372,13 +368,13 @@ func getPlayer(players []*SeatedPlayer, userID database.UserID) (out *SeatedPlay return } -func (g *PokerGame) IsSeated(userID database.UserID) (out bool) { - g.Players.RWith(func(gPlayers *[]*SeatedPlayer) { out = isSeated(*gPlayers, userID) }) - return +func (g *PokerGame) IsSeated(userID database.UserID) bool { + return isSeated(*g.Players.Val(), userID) } -func (g *PokerGame) IsSeated2(userID database.UserID) bool { - return isSeated(*g.Players.Val(), userID) +func (g *PokerGame) isSeated(userID database.UserID) (out bool) { + g.Players.RWith(func(gPlayers *[]*SeatedPlayer) { out = isSeated(*gPlayers, userID) }) + return } func isSeated(players []*SeatedPlayer, userID database.UserID) bool { @@ -430,7 +426,7 @@ func (g *PokerGame) incrDealerIdx() (smallBlindIdx, bigBlindIdx int) { func (g *PokerGame) UnSitPlayer(userID database.UserID) error { ongoing := g.Ongoing if ongoing != nil { - if p := ongoing.GetPlayer(userID); p != nil { + if p := ongoing.getPlayer(userID); p != nil { p.Unsit.Store(true) } } @@ -451,7 +447,7 @@ func (g *PokerGame) UnSitPlayer1(seatedPlayer *SeatedPlayer) { roomTopic := g.RoomID.Topic() seatedPlayerUserID := seatedPlayer.UserID if ongoing != nil { - if player := ongoing.GetPlayer(seatedPlayerUserID); player != nil { + if player := ongoing.getPlayer(seatedPlayerUserID); player != nil { select { case g.PlayersEventCh <- PlayerEvent{Player: player.Username, Unsit: true}: default: @@ -461,7 +457,7 @@ func (g *PokerGame) UnSitPlayer1(seatedPlayer *SeatedPlayer) { for _, card := range *playerCards { evt := PokerEvent{ID: "card" + itoa(card.Idx), Name: "", Idx: card.Idx, Top: BurnStackY, Left: BurnStackX, Angle: "0deg", Reveal: false} PokerPubSub.Pub(roomTopic, evt) - ongoing.AddEvent(evt) + ongoing.addEvent(evt) } }) } @@ -526,7 +522,7 @@ func showCards(g *PokerGame, seats []Seat) { evt2 := PokerEvent{ID: "card" + itoa(secondCard.Idx), Name: secondCard.Name, Idx: secondCard.Idx, Top: seatData.Top, Left: seatData.Left + 53, Reveal: true} PokerPubSub.Pub(roomTopic, evt1) PokerPubSub.Pub(roomTopic, evt2) - ongoing.AddEvent(evt1, evt2) + ongoing.addEvent(evt1, evt2) } } } @@ -596,11 +592,11 @@ func foldPlayer(g *PokerGame, p *PokerPlayer) { evt2 := PokerEvent{ID: "card" + itoa(secondCardIdx), Name: "", Idx: secondCardIdx, Top: BurnStackY, Left: BurnStackX, Angle: "0deg", Reveal: false} PokerPubSub.Pub(roomTopic, evt1) PokerPubSub.Pub(roomTopic, evt2) - g.Ongoing.AddEvent(evt1, evt2) + g.Ongoing.addEvent(evt1, evt2) } func doUnsit(g *PokerGame, p *PokerPlayer, playerAlive *int) int { - *playerAlive = g.Ongoing.CountAlivePlayers() + *playerAlive = g.Ongoing.countAlivePlayers() if *playerAlive == 1 { p.countChancesToAction-- return breakRoundIsSettledLoop @@ -797,7 +793,7 @@ func execBettingRound(g *PokerGame, skip int, minBet database.PokerChip) bool { newlyAllInPlayers := make([]*PokerPlayer, 0) autoCache := make(map[database.Username]AutoAction) - playerAlive := ongoing.CountAlivePlayers() + playerAlive := ongoing.countAlivePlayers() // Avoid asking for actions if only 1 player can do so (because others are all-in) nbCanBet := ongoing.countCanBetPlayers() @@ -964,7 +960,7 @@ func burnCard(g *PokerGame, idx, burnIdx *int) { Left: BurnStackX + (*burnIdx * 4), } PokerPubSub.Pub(g.RoomID.Topic(), evt) - ongoing.AddEvent(evt) + ongoing.addEvent(evt) *burnIdx++ } @@ -981,7 +977,7 @@ func dealCard(g *PokerGame, idx *int, dealCardIdx int) { Reveal: true, } PokerPubSub.Pub(g.RoomID.Topic(), evt) - ongoing.AddEvent(evt) + ongoing.addEvent(evt) ongoing.communityCards = append(ongoing.communityCards, card) } @@ -1030,7 +1026,7 @@ func dealPlayersCards(g *PokerGame, seats []Seat, idx *int) { *pCards = append(*pCards, PlayerCard{Idx: *idx, Name: card}) }) - ongoing.AddEvent(evt, evt1) + ongoing.addEvent(evt, evt1) } } } @@ -1183,7 +1179,7 @@ func autoUnsitInactivePlayers(g *PokerGame) { } else if p.LastActionTS.Before(ongoing.CreatedAt) { // If the player was playing the game, must be booted if he had the chance to make actions and did not. // If the player was not playing the game, must be booted if he's not eligible to play the next one. - op := ongoing.GetPlayer(p.UserID) + op := ongoing.getPlayer(p.UserID) playerShallBeBooted = (op != nil && op.countChancesToAction > 0) || (op == nil && !pIsEligible) } @@ -1374,7 +1370,7 @@ func cardToPokerCard(name string) string { func (g *PokerGame) Deal(roomID RoomID, authUser *database.User) { roomTopic := roomID.Topic() roomUserTopic := roomID.UserTopic(authUser.Username) - if g.CountEligibleSeated() < 2 { + if g.countEligibleSeated() < 2 { PokerPubSub.Pub(roomUserTopic, ErrorMsgEvent{Message: "need at least 2 players"}) return } @@ -1392,7 +1388,7 @@ func (g *PokerGame) Deal(roomID RoomID, authUser *database.User) { go dealerThread(g) } -func (g *PokerGame) CountEligibleSeated() (count int) { +func (g *PokerGame) countEligibleSeated() (count int) { g.Players.RWith(func(gPlayers *[]*SeatedPlayer) { for _, p := range *gPlayers { if p.isEligible(g.PokerTableMinBet) { @@ -1905,7 +1901,7 @@ func buildSeatsHtml(g *PokerGame, authUser *database.User) (html string) { func drawSeatsStyle(authUser *database.User, g *PokerGame) string { ongoing := g.Ongoing html := "<style>" - seated := g.IsSeated(authUser.ID) + seated := g.isSeated(authUser.ID) g.Players.RWith(func(players *[]*SeatedPlayer) { for i, p := range *players { if p != nil || seated { @@ -1922,7 +1918,7 @@ func drawSeatsStyle(authUser *database.User, g *PokerGame) string { html += `#seat` + itoa(i+1) + ` .inner:before { content: "` + pUsername.String() + `"; }` html += `#seat` + itoa(i+1) + `_cash:before { content: "` + itoa2(p.GetCash()) + `"; }` if ongoing != nil { - if op := ongoing.GetPlayer(pUserID); op != nil && op.GetBet() > 0 { + if op := ongoing.getPlayer(pUserID); op != nil && op.GetBet() > 0 { html += `#seat` + itoa(i+1) + `Pot:before { content: "` + itoa2(op.GetBet()) + `"; }` } }