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 BF1942ServerInfo {
12  
13  	public static ServerInfo getDetails(int localPort, String ipStr, int port, int infoType, int queryType,
14          int gameType) {
15              
16          String queryResult = Util.getInfo(localPort, ipStr, port, "\\info\\", infoType, queryType, gameType);
17          ServerInfo serverInfo = null;
18          if(queryResult != null && queryResult.length() > 0) {
19              serverInfo = new ServerInfo();
20              serverInfo.setGame(Util.getPart(queryResult, "gameId"));
21              serverInfo.setGameVersion(Util.getPart(queryResult, "version"));
22              serverInfo.setIp(ipStr);
23              serverInfo.setPort(Util.getPart(queryResult, "hostport"));
24              serverInfo.setName(Util.getPart(queryResult, "hostname"));
25              serverInfo.setMap(Util.getPart(queryResult, "mapname"));
26              serverInfo.setPlayerCount(Util.getPart(queryResult, "numplayers"));
27              serverInfo.setMaxPlayers(Util.getPart(queryResult, "maxplayers"));
28              serverInfo.setTeam1Tickets(Util.getPart(queryResult, "tickets1"));
29              serverInfo.setTeam2Tickets(Util.getPart(queryResult, "tickets2"));
30              serverInfo.setFullResponse(queryResult);
31          }
32  
33  		return serverInfo;
34  	}
35  
36      public static ArrayList getPlayers(int localPort, String ipStr, int port, int infoType, int queryType, 
37          int gameType) {
38              
39          String recStr = Util.getInfo(localPort, ipStr, port, "\\players\\", infoType, queryType, gameType);
40          ArrayList playerInfo = new ArrayList();
41          if(recStr != null || recStr.length() > 0) {
42              String[] plyrs = recStr.split("deaths_");
43              int playerCount = plyrs.length-1;
44              for(int x=1; x < plyrs.length; x++) {
45                  String plyrLine = "\\deaths_" + plyrs[x];
46             
47                  PlayerInfo player = new PlayerInfo();
48                  player.setDeaths(Integer.valueOf(Util.getPart(plyrLine, "deaths_"+ (x-1))).intValue());
49                  player.setKills(Integer.valueOf(Util.getPart(plyrLine, "kills_"+ (x-1))).intValue());
50                  player.setName(Util.getPart(plyrLine, "playername_"+ (x-1)));
51                  player.setScore(Integer.valueOf(Util.getPart(plyrLine, "score_"+ (x-1))).intValue());
52                  playerInfo.add(player);
53              }
54              Collections.sort(playerInfo, new ScoreComparator());
55          }
56          return playerInfo;
57      }
58  }