private static List<String> getInstallationQueue(JSONObject packConfig, String packVersion) {
        
        //Get version entries
        Logger.info("Instances.getInstallationQueue", "Getting entry list...");
        JSONArray entriesArray = null;
        if (packVersion.equalsIgnoreCase("recommended")) {
            for (Object obj : (JSONArray)packConfig.get("versions")) {
                JSONObject versionObj = (JSONObject)obj;
                if (versionObj.get("name").toString().equals(packConfig.get("recommendedversion").toString())) {
                    entriesArray = (JSONArray)versionObj.get("entries");
                    break;
                }
            }
        } else {
            for (Object obj : (JSONArray)packConfig.get("versions")) {
                JSONObject versionObj = (JSONObject)obj;
                if (versionObj.get("name").toString().equals(packVersion)) {
                    entriesArray = (JSONArray)versionObj.get("entries");
                    break;
                }
            }
        }
        if (entriesArray == null) {
            Logger.error("Instances.getInstallationQueue", "Could not find entries for specified version!");
            return null;
        }
        
        //Init installation queue
        List<String> installationQueue = new ArrayList();
        
        //Announce Minecraft enqueueing
        GlobalDialogs.setProgressCaption("Enqueueing Minecraft...");
        
        //Queue Minecraft
        Logger.info("Instances.getInstallationQueue", "Enqueueing Minecraft...");
        enqueueCacheEntry("minecraftskeleton", packConfig.get("minecraftversion").toString(), "./packs/" + packConfig.get("name").toString() + "/cache", packConfig.get("minecraftversion").toString(), installationQueue);
        
        //Add pack entries to installation queue
        for (Object obj : entriesArray) {
            JSONObject entryObj = (JSONObject) obj;
            
            //Announce entry
            GlobalDialogs.setProgressCaption("Enqueueing '" + entryObj.get("name").toString() + "'...");
            
            //Enqueue entry
            Logger.info("Instances.getInstallationQueue", "Enqueueing '" + entryObj.get("name").toString() + "'...");
            enqueueCacheEntry(entryObj.get("name").toString(), entryObj.get("version").toString(), "./packs/" + packConfig.get("name").toString() + "/cache", packConfig.get("minecraftversion").toString(), installationQueue);
            
            //Update progress
            GlobalDialogs.incrementProgressValue(100 / entriesArray.size());
        }
        
        return installationQueue;
    }