Respect game visibility

Offen
#50 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
45/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Veraltet
Tech-Stack
java
Bereich
backend

Rechercherichtung

Beginne mit GameService#markDirty, DelayedResponse, ClientService#broadcastDelayedResponses und GameResponsesTransformer#game und überprüfe anschließend die zugehörigen Unit-Tests. Erledigt ist die Aufgabe, wenn private Spiele nicht broadcastet werden, Spiele nur für Freunde nur Freunde erreichen, die Sichtbarkeit in den Game-Responses für Clients weggelassen wird, GameAccess entfernt wurde und die angepassten Tests bestehen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

beginner-friendly

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
Vorherrschende Sprache
Java
Sterne
12
Forks
5
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus FAForever/faf-java-server

Alle Issues in FAForever/faf-java-server

Ähnliche Issues

Weitere Issues zu Java

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.