Advertisement
Guest User

Interpreter

a guest
Nov 20th, 2014
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.60 KB | None | 0 0
  1. package KohServer;
  2.  
  3. import java.util.List;
  4.  
  5. import ClientEvents.CancelGameEvent;
  6. import ClientEvents.CancelGameFinishedEvent;
  7. import ClientEvents.CreateGameEvent;
  8. import ClientEvents.CreateGameFinishedEvent;
  9. import ClientEvents.IdentifyMeEvent;
  10. import ClientEvents.JoinGameEvent;
  11. import ClientEvents.JoinGameFinishedEvent;
  12. import ClientEvents.SearchFinishedEvent;
  13. import ClientEvents.SearchGamesEvent;
  14. import ClientEvents.StartSelectEvent;
  15. import ClientEvents.StartSelectFinishedEvent;
  16. import Ressources.Game;
  17.  
  18. public class MessageInterpreter {
  19.     private MessagePublisher publisher;
  20.     private DataStore store = new DataStore();
  21.     public MessageInterpreter(MessagePublisher publisher) {
  22.         this.publisher = publisher;
  23.     }
  24.  
  25.     public void interpretLine(String nextline) {
  26.         publisher.tellEveryOne(nextline);
  27.     }
  28.  
  29.     public void createGame(String line) {
  30.         CreateGameEvent event = new CreateGameEvent(line);
  31.         Game game = new Game();
  32.         game.setId(store.getUniqueId());
  33.         game.setName(event.getGameName());
  34.         game.setMode("1vs1");
  35.         game.setSize(event.getSizeX()+"x"+event.getSizeY());
  36.         game.setNations(event.getEnabledNations());
  37.         game.setOwner(event.getClient());
  38.         game.getTeam1().add(event.getClient());
  39.         store.getOpen().add(game);
  40.         String message = CreateGameFinishedEvent.encode(game.getId(),game.getOwner(),game.getMode(),game.getNations(),game.getName(),game.getSize(),game.getJoinedTeam1(),game.getJoinedTeam2());
  41.         publisher.tellEveryOne(message);
  42.     }
  43.  
  44.     public void joinGame(String line) {
  45.         JoinGameEvent event = new JoinGameEvent(line);
  46.         Game game = getGame(store.getOpen(),event.getGameId());
  47.         System.out.println(store.getOpen().indexOf(new Game(event.getGameId())));
  48.         if(game.getTeam1().contains(event.getClient()) || game.getTeam2().contains(event.getClient()))
  49.             return;
  50.         if(event.getSide().equals("L"))
  51.             game.getTeam1().add(event.getClient());
  52.         if(event.getSide().equals("R"))
  53.             game.getTeam2().add(event.getClient());
  54.         String message = JoinGameFinishedEvent.encode(event.getGameId(),event.getClient(),game.getTeam1(),game.getTeam2());
  55.         publisher.tellEveryOne(message);
  56.     }
  57.  
  58.     public void searchGame(String line) {
  59.         SearchGamesEvent event = new SearchGamesEvent(line);
  60.         String message = SearchFinishedEvent.encode(event.getClient(),store.getOpen());
  61.         publisher.tellEveryOne(message);
  62.     }
  63.  
  64.     public void selectReady(String line) {
  65.         // TODO Auto-generated method stub
  66.        
  67.     }
  68.  
  69.     public void selectFinished(String line) {
  70.         // TODO Auto-generated method stub
  71.        
  72.     }
  73.  
  74.     public void handleStartSelect(String line) {
  75.         StartSelectEvent event = new StartSelectEvent(line);
  76.         Game game = getGame(store.getOpen(),event.getId());
  77.         store.getOpen().remove(game);
  78.         store.getSelecting().add(game);
  79.         String msg = StartSelectFinishedEvent.encode(game.getId(),game.getTeam1(),game.getTeam2(),game.getName(),game.getNations());
  80.         publisher.tellEveryOne(msg);
  81.     }
  82.  
  83.     public void handleCancelGame(String line) {
  84.         CancelGameEvent event = new CancelGameEvent(line);
  85.         Game game = getGame(store.getOpen(),event.getGameId());
  86.         game.getTeam1().remove(event.getClient());
  87.         game.getTeam2().remove(event.getClient());
  88.         if(game.getTeam1().size() == 0 && game.getJoinedTeam2() == 0)
  89.             store.getOpen().remove(game);
  90.         String msg = CancelGameFinishedEvent.encode(event.getClient(), event.getGameName(), event.getGameId());
  91.         publisher.tellEveryOne(msg);
  92.     }
  93.  
  94.     public void identifyClient(IdentifyMeEvent event) {
  95.         publisher.identifyClient(event);
  96.     }
  97.  
  98.     private static Game getGame(List<Game> gList, int index){
  99.         for(Game g: gList)
  100.             if(g.getId() == index)
  101.                 return g;
  102.         return null;
  103.     }
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement