package com.faforever.client.fa; import com.faforever.client.game.Faction; import org.jetbrains.annotations.Nullable; import java.io.IOException; import java.net.URI; import java.nio.file.Path; import java.util.List; /** * Knows how to starts/stop Forged Alliance with proper parameters. Downloading maps, mods and updates as well as * notifying the server about whether the game is running or not is <strong>not</strong> this service's responsibility. */ public interface ForgedAllianceService { Process startGame(int uid, String gameType, Faction faction, List<String> additionalArgs, RatingMode ratingMode, int gpgPort, boolean rehost) throws IOException; Process startReplay(Path path, @Nullable Integer replayId, String gameType) throws IOException; Process startReplay(URI replayUri, Integer replayId, String gameType) throws IOException; }