View Javadoc

1   package net.sourceforge.queried.gametypes;
2   
3   import java.util.ArrayList;
4   import java.util.Collections;
5   
6   import net.sourceforge.queried.PlayerInfo;
7   import net.sourceforge.queried.ScoreComparator;
8   import net.sourceforge.queried.ServerInfo;
9   import net.sourceforge.queried.Util;
10  
11  public class UTServerInfo {
12  
13  	public static ServerInfo getDetails(int localPort, String ipStr, int port, int infoType, int queryType,
14          int gameType) {
15          
16          String queryResult = 
17              Util.getInfo(localPort, ipStr, port, "\\info\\", infoType, queryType, gameType);
18  
19          ServerInfo serverInfo = null;;
20          if(queryResult != null && queryResult.length() > 1) {
21              serverInfo = new ServerInfo();
22              serverInfo.setName(Util.getPart(queryResult, "hostname"));
23              serverInfo.setPort(Util.getPart(queryResult, "hostport"));
24              serverInfo.setMap(Util.getPart(queryResult, "mapname"));
25              serverInfo.setPlayerCount(Util.getPart(queryResult, "numplayers"));
26              serverInfo.setMaxPlayers(Util.getPart(queryResult, "maxplayers"));
27  
28              serverInfo.setGame(Util.getPart(queryResult, "gametype"));
29              serverInfo.setGameVersion(Util.getPart(queryResult, "gamever"));
30              serverInfo.setIp(ipStr);
31              serverInfo.setFullResponse(queryResult);
32          }
33  
34          return serverInfo;
35  	}
36  
37      public static ArrayList getPlayers(int localPort, String ipStr, int port, int infoType, int queryType,
38          int gameType) {
39              
40          String recStr = Util.getInfo(localPort, ipStr, port, "\\players\\", infoType, queryType, gameType);
41  
42          ArrayList playerInfo = new ArrayList();
43          if(recStr != null || recStr.length() > 0) {
44              String[] plyrs = recStr.split("player_");
45              int playerCount = plyrs.length-1;
46              for(int x=1; x < plyrs.length; x++) {
47                  String plyrLine = "\\player_" + plyrs[x];
48             
49                  PlayerInfo player = new PlayerInfo();
50                  player.setName(Util.getPart(plyrLine, "player_"+ (x-1)));
51                  player.setKills(Integer.valueOf(Util.getPart(plyrLine, "frags_"+ (x-1))).intValue());
52                  playerInfo.add(player);
53              }
54              Collections.sort(playerInfo, new ScoreComparator());
55          }
56          return playerInfo;
57      }
58  }