Esempio n. 1
0
  public void save() {

    try {
      attributes =
          "~cIC\n"
              + characterInventory.getTotalCapacity()
              + "\ncIC~\n\n"
              + "~cI\n"
              + getItemNames()
              + "\ncI~\n\n"
              + "~cC\n"
              + room.getRoom()
              + "\ncC~\n\n"
              + "~cSc\n"
              + score
              + "\ncSc~\n\n";

      r.writeStringToFile(attributes);
    } catch (FileNotFoundException ex) {
      Logger.getLogger(Character.class.getName()).log(Level.SEVERE, null, ex);
      ex.printStackTrace();
      System.out.println("File not found");
    } catch (IOException ex) {
      Logger.getLogger(Character.class.getName()).log(Level.SEVERE, null, ex);
      ex.printStackTrace();
      System.out.println("I/O error.");
    }
  }
Esempio n. 2
0
 //		Message format, always two lines
 //		signal\r\n
 //		data\r\n
 //			QUERY :
 //			CREATE : RoomName UserName Grid
 //			CONNECT : Index
 //			TEARDOWN : Index
 //		Room store format
 //			UserName RoomName Grid Index
 private void handleMessage() throws IOException {
   BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
   PrintWriter pw = new PrintWriter(client.getOutputStream());
   System.out.println(Thread.currentThread().getName() + " Wait for Signal");
   String ss = in.readLine();
   int signal = Integer.valueOf(ss);
   switch (signal) {
     case BingoSignal.QUERY:
       // Begin signal
       System.out.println(Thread.currentThread().getName() + " QUERY");
       pw.println(BingoSignal.QUERY);
       /*for(String info: Room.getRoomsInfo())
       pw.println(info);*/
       for (String s : Room.getRoomsInfo()) pw.println(s);
       pw.println("Q_DONE");
       pw.flush();
       System.out.println(Thread.currentThread().getName() + " QUERY DONE");
       for (String s : Room.getRoomsInfo()) System.out.println(s);
       // Ending signal
       // send back
       break;
     case BingoSignal.CREATE:
       {
         System.out.println(Thread.currentThread().getName() + " CREATE");
         new HandleCreate(client).start();
         System.out.println(Thread.currentThread().getName() + " CREATE DONE");
         break;
       }
     case BingoSignal.TEARDOWN:
       {
         System.out.println(Thread.currentThread().getName() + " TEARDOWN");
         for (String s : Room.getRoomsInfo()) System.out.println(s);
         int index = Integer.valueOf(in.readLine());
         Room.removeRoom(index);
         pw.println(BingoSignal.TEARDOWN);
         pw.flush();
         System.out.println(Thread.currentThread().getName() + " TEARDOWN DONE");
         break;
       }
     case BingoSignal.CONNECT:
       {
         // send to both
         System.out.println(Thread.currentThread().getName() + " CONNECT");
         int mIndex = Integer.valueOf(in.readLine());
         ServerSocket nServer = new ServerSocket(0);
         pw.println(nServer.getLocalPort());
         pw.flush();
         Socket participant = nServer.accept();
         System.out.println(Thread.currentThread().getName() + " ACCEPT");
         Pair guest = new Pair(participant, nServer);
         Room.getRoom(mIndex).addParticipant(guest);
         System.out.println(Thread.currentThread().getName() + " GUEST");
         Room.getRoom(mIndex).GameRoomStart();
         System.out.println(Thread.currentThread().getName() + " CONNECT DONE");
         break;
       }
     default:
       // garbage
       System.out.println(ss);
       break;
   }
 }