Yaribz / SPADS

SpringRTS Perl Autohost for Dedicated Server
GNU General Public License v3.0
15 stars 13 forks source link

SpringLobby autounspectate does not work cleanly with SPADS #8

Closed silentwings closed 9 years ago

silentwings commented 9 years ago

When SL users check their auto-unspectate box, the next time a free slot appears in a SPADS hosted battle, they will all momentarily autounspectate (unless the battle is full, which is not necessarily the same thing as having reached the autohosts self-imposed max player count). Almost immediately after, all but one of the clients is returned to being a spectator. When this happens each SL client thinks it became a player, and unchecks its auto-unspectate box.

The result is that (I don't know about other lobbies) it appears as though SLs auto-unspectate function only tries to unspectate once on SPADS hosts.

I don't know if this is genuinely a SPADS issue or a limitation of the lobby protocol, but it seems it cannot be cleanly addressed in SL (https://github.com/springlobby/springlobby/issues/365).

Yaribz commented 9 years ago

This means the auto-unspectate function of SL is half-broken. It just shouldn't automatically disable the auto-unspectate box. Instead, it should use a timer to be sure it doesn't spam MYBATTLESTATUS commands. AFAIK TASClient's auto-unspec functionality is done this way and works correctly for example.

Also, regarding springlobby/springlobby#365 : FYI hosts can't force unspec (there is no command for that in the lobby protocol), so the proposed way to workaround SL problem in SPADS is not even possible.