package org.royaldev.thehumanity.game; import org.royaldev.thehumanity.game.round.RoundSnapshot; import org.royaldev.thehumanity.util.json.JSONSerializable; import java.io.Serializable; import java.util.List; import java.util.Map; public class GameSnapshot implements Serializable, JSONSerializable { private static final long serialVersionUID = 45L; private List<String> players, historicPlayers, houseRules, cardPacks; private List<RoundSnapshot> previousRounds; private Map<String, Integer> scores; private String channel, endCause, host; private Timestamps timestamps; private int rounds; public GameSnapshot() {} public GameSnapshot(final String channel, final String endCause, final long startTime, final long endTime, final List<String> players, final List<String> historicPlayers, final List<String> houseRules, final List<String> cardPacks, final List<RoundSnapshot> previousRounds, final Map<String, Integer> scores, final String host, final int rounds) { this.players = players; this.historicPlayers = historicPlayers; this.houseRules = houseRules; this.cardPacks = cardPacks; this.channel = channel; this.endCause = endCause; this.previousRounds = previousRounds; this.host = host; this.timestamps = new Timestamps(startTime, endTime); this.scores = scores; this.rounds = rounds; } public List<String> getCardPacks() { return this.cardPacks; } public String getChannel() { return this.channel; } public String getEndCause() { return this.endCause; } public List<String> getHistoricPlayers() { return this.historicPlayers; } public String getHost() { return this.host; } public List<String> getHouseRules() { return this.houseRules; } public List<String> getPlayers() { return this.players; } public List<RoundSnapshot> getPreviousRounds() { return this.previousRounds; } public int getRounds() { return this.rounds; } public Map<String, Integer> getScores() { return this.scores; } public Timestamps getTimestamps() { return timestamps; } public static class Timestamps implements Serializable, JSONSerializable { private static final long serialVersionUID = 50L; private long started, ended; public Timestamps() {} public Timestamps(final long started, final long ended) { this.started = started; this.ended = ended; } public long getEnded() { return this.ended; } public long getStarted() { return this.started; } } }