public GameStarted startGame(String gameUUID, GameData data) { PersistenceManager pm = getPersistenceManager(); GameStarted retObject; ArrayList<HashMap<String, String>> apnData = new ArrayList<HashMap<String, String>>(); try { Game g = pm.getObjectById(Game.class, gameUUID); g.setGamePlayDataUUID(data.getUUID()); g.startGame(); pm.makePersistent(data); //Assigns Targets ArrayList<String> playerUUIDs = g.getPlayerUUIDs(); Collections.shuffle(playerUUIDs, new Random(System.currentTimeMillis())); int numPlayers = playerUUIDs.size(); for (int i= 0; i < numPlayers; i ++) { GameUser hunter = pm.getObjectById(GameUser.class, playerUUIDs.get(i)); hunter.setTargetUUID(gameUUID, playerUUIDs.get((i+1)%numPlayers)); hunter.setUserStatus("Playing - Alive"); } //Collect APN Information String hostUUID = g.getHostUUID(); for (String usrUUID: playerUUIDs) { if (usrUUID != hostUUID) { GameUser usr = pm.getObjectById(GameUser.class, usrUUID); HashMap<String, String> entry = new HashMap<String, String>(); entry.put("apn", usr.getAPN()); entry.put("platformId", usr.getPlatformID()); apnData.add(entry); } } } finally { pm.close(); } retObject = new GameStarted(apnData); return retObject; }