public static void parseMods(File f) {
        try {
            JAXBContext jaxb = JAXBContext.newInstance(Mod.class);
            Unmarshaller unmarshaller = jaxb.createUnmarshaller();

            System.out.print("Parsing mods...");
            mod = (Mod) unmarshaller.unmarshal(f);
            System.out.println(" done.");

            int i = 0;
            while (i < mod.mods.size()) {
                if (mod.mods.get(i).xml != null) {
                    mod.mods.get(i).modType = ModType.OFFICIAL;

                    System.out.println("Mod #" + (i + 1) + " is from the official repository.");
                    System.out.print("Getting remote XML for mod #1...");
//                    InputStream is = Downloader.getRemoteModXML(new URL(mod.mods.get(i).xml));
                    System.out.println(" done.");
                    parseRemoteXML(Downloader.getRemoteModXML(new URL(mod.mods.get(i).xml)));

                } else {
                    mod.mods.get(i).modType = ModType.UNOFFICIAL;
                    System.out.println("Mod #" + (i + 1) + " is unofficial; if something goes wrong, it's not my fault.");
                }
                i++;
            }
        } catch (JAXBException e)         {
            e.printStackTrace();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e)           {
            e.printStackTrace();
        }
    }