public ChatServer(IServerConsole serverConsole) {
    chatters = new ArrayList<ChatHandler>();
    ChatServer.serverConsole = serverConsole;

    try {
      ServerSocket listener = new ServerSocket(4711);

      print(WELCOME_MESSAGE);

      while (true) {
        Socket socket = listener.accept();

        print("Connection accepted from " + socket.getInetAddress().getHostAddress());

        BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        PrintWriter output = new PrintWriter(socket.getOutputStream());
        String username = null;
        String message = input.readLine();

        StringTokenizer st = new StringTokenizer(message);
        // make sure it is a connect message.
        if (st.nextToken().equals(Requests.Connect) && st.hasMoreTokens()) {
          // second line must be empty
          if (input.readLine().equals("")) {
            username = st.nextToken();
            // create new Chatter and ChatHandler
            Chatter chatter = createChatter(username, socket);
            ChatHandler chatHandler = new ChatHandler(chatter, this, input);
            chatters.add(chatHandler);
            chatHandler.setDaemon(true);
            chatHandler.start();
            print("New Chatter created named: " + chatter.Name + " with id: " + chatter.Id);
            sendListToAll();
          } else {

            output.print(formatCommand(KNordHeaderFields.Responses.Unsupported));
            output.print(formatCommand(KNordHeaderFields.Responses.Disconnect));

            print(
                "Disconnecting from "
                    + socket.getInetAddress().getHostAddress()
                    + " - UNSUPPORTED");

            socket.close();
          }
        }
      }
    } catch (IOException e) {
      print(e.getMessage());
      try {
        Thread.sleep(2000);
      } catch (InterruptedException e1) {
        e1.printStackTrace();
      }
      serverConsole.getJFrame().dispose();
    }
  }
  protected void broadcastMessage(String msg, String source) {
    StringBuilder response;

    for (ChatHandler c : chatters) {
      response = new StringBuilder();
      response.append(KNordHeaderFields.Responses.Message + " " + source);
      response.append("\r\n");
      response.append(msg);

      c.sendResponse(response.toString());
    }
  }
 protected void sendMessage(String target, String text, ChatHandler source) {
   // TODO This shits broken yo. the protocol I mean MESSAGE source
   boolean noSuchAlias = true;
   for (int i = 0; i < chatters.size(); i++) {
     if (chatters.get(i).getChatter().Name.equals(target)) {
       String message = Responses.Message + " " + source.getChatter().Name + "\n" + text + "\n";
       chatters.get(i).sendResponse(message);
       noSuchAlias = false;
     }
   }
   if (noSuchAlias) source.sendResponse(Responses.NoSuchAlias);
 }
  protected void listChatters(ChatHandler chatHandler) {
    StringBuilder response = new StringBuilder();
    response.append(KNordHeaderFields.Responses.List);
    response.append("\r\n");

    for (ChatHandler ch : chatters) {
      response.append(ch.getChatter().Name);
      response.append("\r\n");
    }

    // response.append("\r\n");

    chatHandler.sendResponse(response.toString());
  }
  protected void unknown(ChatHandler chatHandler) {
    StringBuilder response = new StringBuilder();
    response.append(KNordHeaderFields.Responses.Unknown);
    response.append("\r\n");

    chatHandler.sendResponse(response.toString());
  }
  protected void deleteChatter(ChatHandler chatter) {
    for (int index = 0; index < chatters.size(); index++) {
      if (chatters.get(index).equals(chatter)) {
        chatter.setRunning(false);
        chatters.remove(chatter);

        try {
          chatter.close();
          print("Closed connection to " + chatter.getChatter().Name + ".");
        } catch (IOException e) {
          e.printStackTrace();
        }
        sendListToAll();
        break;
      }
    }
  }
Ejemplo n.º 7
0
  public void stop() {
    for (Closeable c : closeables)
      try {
        c.close();
      } catch (IOException ignore) {
      }

    ChatHandler.removeAll();
  }
Ejemplo n.º 8
0
 public void render() {
   glPushMatrix();
   {
     glClearColor(0, 0, 0, 0);
     glColor4f(255, 255, 255, 255);
     tileMap.render();
     player.render(tileMap.getX(), tileMap.getY());
     chat.render();
     robot.render();
   }
   glPopMatrix();
 }
Ejemplo n.º 9
0
 public void update() {
   chat.update();
   player.update();
   tileMap.update((1280 / 2) - (int) player.getX(), (720 / 2) - (int) player.getY());
   robot.update();
 }