magefree / mage

Magic Another Game Engine
http://xmage.today
MIT License
1.8k stars 747 forks source link

Feature request: don't kick players during draft for connection problems, or allow hotjoining #8523

Open Jipsu opened 2 years ago

Jipsu commented 2 years ago

XMage can kick players from a draft if they have unstable internet connection. Sometimes players are able to return to the server and rejoin draft, missing a couple of picks, but sometimes they are immediately kicked (so you don't get the player got connection problem for 62 secs; player got connection problem for 122 secs; player got connection problem for 182 secs before player has quit the tournament; player session expired.). This makes tournament drafting difficult.

Is it possible to implement one of the changes below?

A) Never kick players during draft so they can continue in the tournament when their connection returns.

B) Have a checkbox in tournament creation window to toggle A) on or off.

C) Let anyone hotjoin a draft where a player has been replaced by draftbot.

Option B lets host decide if they want to risk having to wait for timer going down to 0 every time.

Option C is the most flexible. I often play on a server that doesn't require registration. It has happened that a drafter gets disconnected and tries to reconnect but can't, because their username is already taken. They eventually get kicked from the draft since they obviously can't rejoin if they try with a new name.

duelcastermage commented 2 years ago

Seconded(!), this would be an absolute game-changer for our XMage draft group.

JayDi85 commented 2 years ago

It hard to make a rejoin logic or a new player joining in the middle of the draft. I'll try to research it -- maybe something can be changed.

Related issue with owner/admin panel with players list and additional actions: #8525

JayDi85 commented 6 months ago

Already used name error related to IP changes on client side after vpn/proxy/wifi/router restart.

Also a kicking problem related to close/disconnect button - if user has good connection and try to close/disconnect then server will get it and concede/kick player from all active tables/tourneys/games/etc. Thats why java app closing was much safety for restart/reconnect.

All that problems was fixed with incoming network code upgrade (except players hot-swap with draft bots — I think it’s possible, but need additional time to implement and testing).