FAForever / faf-java-server

Spring Boot based server for Forged Alliance Forever
12 stars 6 forks source link

Respect game visibility #50

Open micheljung opened 6 years ago

micheljung commented 6 years ago

Currently, the server broadcasts all games to all players. However, games marked as PRIVATE should not be broadcasted at all and games marked as FRIENDS should only be sent to friends.

  1. Remove the unused com.faforever.server.game.GameAccess
  2. Don't serialize visibility when sending games to client (in com.faforever.server.integration.legacy.transformer.GameResponsesTransformer#game)
  3. Implement a method similar to com.faforever.server.game.GameService#markDirty that allows specifying a list of players to send to
  4. Extend com.faforever.server.client.DelayedResponse so that a list of receivers can be specified. The list should be nullable (so make its getter return an Optional), in which case it's considered a broadcast (document this in the getter)
  5. Refactor com.faforever.server.client.ClientService#broadcastDelayedResponses so that it either broadcasts the response or sends it to the list of recipients.
  6. Adjust and add unit tests accordingly