public List<Player> getPlayers() { List<Player> players = Lists.newArrayList(); NodeList nl = getSecondLevelElelents("players", "player"); for(int i = 0; i < nl.getLength(); i++) { Element el = (Element) nl.item(i); PlayerSlot slot = new PlayerSlot(Integer.parseInt(el.getAttribute("slot"))); Player p = new Player(el.getAttribute("name"), i, slot); p.setPoints(Integer.parseInt(el.getAttribute("points"))); if (el.hasAttribute("ai-class")) { slot.setType(SlotType.AI); String aiClassName = el.getAttribute("ai-class"); // //TODO temporaty for loading old games // if ("com.jcloisterzone.ai.LegacyAiPlayer".equals(aiClassName)) { // aiClassName = LegacyAiPlayer.class.getName(); // } slot.setAiClassName(aiClassName); } else { if (el.hasAttribute("local")) { //easy way how to mark player local - Server process result of this method //and can assign real onwer properly slot.setType(SlotType.PLAYER); } } players.add(p); } return players; }