Пример #1
0
  public Observable<GameServer> refreshFavourites() {
    return Observable.create(
        subscriber -> {
          new Thread(
                  () -> {
                    favourites.forEach(
                        x -> {
                          gameService
                              .getServerStatus(new Tuple(x.getIp(), x.getPort()))
                              .subscribe(
                                  s -> {
                                    if (!subscriber.isUnsubscribed()) {
                                      subscriber.onNext(
                                          ServerStatusParser.statusToServer(
                                              (String[]) s, new Tuple(x.getIp(), x.getPort())));
                                    }
                                  });
                        });

                    if (!subscriber.isUnsubscribed()) {
                      subscriber.onCompleted();
                    }
                  })
              .start();
        });
  }
Пример #2
0
  private void readFavourites() {
    try {
      List<String> favs =
          Files.readAllLines(new File("favourites.txt").toPath(), Charset.forName("UTF-8"));

      for (String s : favs) {
        String[] pieces = s.split(":");
        String[] emptyServerStatus =
            new String[] {"N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A", "N/A"};
        favourites.add(
            ServerStatusParser.statusToServer(
                emptyServerStatus, new Tuple(pieces[0], Integer.parseInt(pieces[1]))));
      }
    } catch (IOException ex) {
      System.err.println(" - favourites.txt not found");
    }
  }
Пример #3
0
  public Observable<GameServer> getNewServerList() {
    servers.clear();

    return Observable.create(
        subscriber -> {
          new Thread(
                  () -> {
                    masterService
                        .getServers(masterServer)
                        .subscribe(
                            list -> {
                              list.parallelStream()
                                  .forEach(
                                      ipTuple -> {
                                        if (!subscriber.isUnsubscribed()) {
                                          gameService
                                              .getServerStatus(ipTuple)
                                              .subscribe(
                                                  serverStatus -> {
                                                    GameServer server =
                                                        ServerStatusParser.statusToServer(
                                                            serverStatus, ipTuple);
                                                    servers.add(server);
                                                    subscriber.onNext(server);
                                                  });
                                        }
                                      });
                            });

                    if (!subscriber.isUnsubscribed()) {
                      subscriber.onCompleted();
                    }
                  })
              .start();
        });
  }