Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package KohServer;
- import java.util.List;
- import ClientEvents.CancelGameEvent;
- import ClientEvents.CancelGameFinishedEvent;
- import ClientEvents.CreateGameEvent;
- import ClientEvents.CreateGameFinishedEvent;
- import ClientEvents.IdentifyMeEvent;
- import ClientEvents.JoinGameEvent;
- import ClientEvents.JoinGameFinishedEvent;
- import ClientEvents.SearchFinishedEvent;
- import ClientEvents.SearchGamesEvent;
- import ClientEvents.StartSelectEvent;
- import ClientEvents.StartSelectFinishedEvent;
- import Ressources.Game;
- public class MessageInterpreter {
- private MessagePublisher publisher;
- private DataStore store = new DataStore();
- public MessageInterpreter(MessagePublisher publisher) {
- this.publisher = publisher;
- }
- public void interpretLine(String nextline) {
- publisher.tellEveryOne(nextline);
- }
- public void createGame(String line) {
- CreateGameEvent event = new CreateGameEvent(line);
- Game game = new Game();
- game.setId(store.getUniqueId());
- game.setName(event.getGameName());
- game.setMode("1vs1");
- game.setSize(event.getSizeX()+"x"+event.getSizeY());
- game.setNations(event.getEnabledNations());
- game.setOwner(event.getClient());
- game.getTeam1().add(event.getClient());
- store.getOpen().add(game);
- String message = CreateGameFinishedEvent.encode(game.getId(),game.getOwner(),game.getMode(),game.getNations(),game.getName(),game.getSize(),game.getJoinedTeam1(),game.getJoinedTeam2());
- publisher.tellEveryOne(message);
- }
- public void joinGame(String line) {
- JoinGameEvent event = new JoinGameEvent(line);
- Game game = getGame(store.getOpen(),event.getGameId());
- System.out.println(store.getOpen().indexOf(new Game(event.getGameId())));
- if(game.getTeam1().contains(event.getClient()) || game.getTeam2().contains(event.getClient()))
- return;
- if(event.getSide().equals("L"))
- game.getTeam1().add(event.getClient());
- if(event.getSide().equals("R"))
- game.getTeam2().add(event.getClient());
- String message = JoinGameFinishedEvent.encode(event.getGameId(),event.getClient(),game.getTeam1(),game.getTeam2());
- publisher.tellEveryOne(message);
- }
- public void searchGame(String line) {
- SearchGamesEvent event = new SearchGamesEvent(line);
- String message = SearchFinishedEvent.encode(event.getClient(),store.getOpen());
- publisher.tellEveryOne(message);
- }
- public void selectReady(String line) {
- // TODO Auto-generated method stub
- }
- public void selectFinished(String line) {
- // TODO Auto-generated method stub
- }
- public void handleStartSelect(String line) {
- StartSelectEvent event = new StartSelectEvent(line);
- Game game = getGame(store.getOpen(),event.getId());
- store.getOpen().remove(game);
- store.getSelecting().add(game);
- String msg = StartSelectFinishedEvent.encode(game.getId(),game.getTeam1(),game.getTeam2(),game.getName(),game.getNations());
- publisher.tellEveryOne(msg);
- }
- public void handleCancelGame(String line) {
- CancelGameEvent event = new CancelGameEvent(line);
- Game game = getGame(store.getOpen(),event.getGameId());
- game.getTeam1().remove(event.getClient());
- game.getTeam2().remove(event.getClient());
- if(game.getTeam1().size() == 0 && game.getJoinedTeam2() == 0)
- store.getOpen().remove(game);
- String msg = CancelGameFinishedEvent.encode(event.getClient(), event.getGameName(), event.getGameId());
- publisher.tellEveryOne(msg);
- }
- public void identifyClient(IdentifyMeEvent event) {
- publisher.identifyClient(event);
- }
- private static Game getGame(List<Game> gList, int index){
- for(Game g: gList)
- if(g.getId() == index)
- return g;
- return null;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement