ctm / mb2-doc

Mb2, poker software
https://devctm.com
7 stars 2 forks source link

Incorrect number of players in lobby #1280

Closed ctm closed 6 months ago

ctm commented 6 months ago

Fix the problem that resulted in the number of players in the lobby being low.

During this evening's tournament, I got a report that the lobby was showing 6 when it should have been showing 8:

Screenshot 2024-01-12 172911

I was playing myself and didn't get a chance to ask much about it at the time, but later I asked the person to hover over the number to find out who was missing and it turns out they were down to four players, but it was saying three and the missing player was Grizz:

2

My lobby was showing 4, but I refreshed it and got the erroneous 3.

Presumably this will be trivial to reproduce and fix.

ctm commented 6 months ago

Trivial to reproduce: create a tournament that starts with two, then join a third, have a fourth log in and it'll only see the original two. That's because when you're logged in, PlayersAdded and PlayerRemoved are monitored to keep in sync, but the server isn't updating something. I'll find out what and fix it.

ctm commented 6 months ago

NickMapper has its own Event, that is separate from the RunningEvent that is running, because of course it does. In general, that Event doesn't actually change, but the entrant_ids field is an exception, because of course. Guess where PlayersAdded and PlayerRemoved come from. NickMapper! So, it's just a matter of updating the Event when those are generated.

ctm commented 6 months ago

FWIW, I have this fixed locally for tournaments, but there's a ring-game edge case that I don't fully understand. I haven't played with the (incomplete!) ring game code for a while. I'll test something before I make a change. I can always deploy the fix I have now even if it doesn't fix a hypothetical ring game problem.

ctm commented 6 months ago

I fixed the ring game code, too, although I don't think that code can be hit, yet, due to the primitive state of ring games.

I'm deploying now.