package baleine.common.interfaces.server; import java.util.ArrayList; import java.util.UUID; import com.sun.jmx.snmp.Timestamp; import baleine.common.dataModel.GameLight; import baleine.common.dataModel.Message; import baleine.common.dataModel.Move; import baleine.common.dataModel.UserLight; /** * IComToData This class is an interface which provides server methods to * communicate from Com to Data modules. */ public interface IComToData { /** * Requests a player by its UUID. * * @param playerID : the UUID of the player to retrieve */ public void requestPlayerByUUID(UUID playerID); /** * Adds a new user to the list. * * @param userLight : the user to add */ public void addNewUser(UserLight userLight); /** * Create a new game. * * @param gameLight : the game to create */ public void createGame(GameLight gameLight); /** * Request saving a game by UUID. * * @param gameID : the UUID of the game to save */ public void requestGameSave(UUID gameID); /** * Receive a new chat message to transfer it. * * @param message : the message to transfer * @param timestamp : the timestamp of the message * @param userID : the UUID of the user sending the message * @param gameID : the UUID of the game in which the message was sent * @return the message to transfer */ public Message receiveNewChatMessage(String message, Timestamp timestamp, UUID userID, UUID gameID); /** * Get all the participants (players & spectators) of a game. * * @param gameID : the UUID of the game * @return the list of users */ public ArrayList<UUID> getAllGameParticipants(UUID gameID); /** * Notifies that a user has been disconnected. * * @param userID : the UUID of the disconnected user */ public void disconnectUser(UUID userID); /** * Adds a spectator to a game. * * @param gameLight : the game concerned * @param userLight : the user to add as spectator */ public void addSpectator(GameLight gameLight, UserLight userLight); /** * Send a move to the data module. * * @param move : the move to send */ public void sendMove(Move move); }